【转载】bat 屏蔽命令控制台输出

原文地址:http://hi.baidu.com/yeyaofeng/item/59cdf7f4718661d642c36af4

在批处理中,有很多方法可以屏蔽命令结果输出,比如@,比如echo off,比如1>nul 2>nul…

那么这些都有什么区别呢?

【一】首先,我们来看@,这个@能屏蔽命令本身的显示,但是不能屏蔽命令结果的显示,而且@只对他所在的那一行命令有效,如果想屏蔽多行命令输出显示,必须每条命令前都加个@。

比如,你输入命令@taskkill /im ClientPatch.exe /f

你将看不到taskkill命令本身,但是却能看到结果。

【二】接下来再看echo off

这个命令也是可以屏蔽命令本身,却不能屏蔽命令的结果。但是他比@强大的地方在于,他对在他之下的所有命令都起作用,只要没有特别说明(echo on),他能一直屏蔽命令直到结束。

比如
echo off
taskkill /im ClientPatch.exe /f
taskkill /im unsecapp.exe /f
taskkill /im IeoExt.exe /f
taskkill /im MDM.exe /f
taskkill /im BarClient.exe /f

在echo off下的所有命令执行时,本身都被屏蔽了,你只能看到命令执行后的结果.
但是由于echo off本身也是条命令,所以要想连他自己也不显示,比如用@屏蔽他。
@echo off

【三】我们现在来看>nul 2>nul。
这个命令能很好的补充@和echo off命令的不足,他是专门屏蔽结果的.
但是他却不能屏蔽命令本身…

比如:del>nul 2>nul /f /s /q %systemdrive%*.tmp
运行的时候你能在输出界面看到这条命令,却看不到命令执行后的结果.

另外,解释下>nul和2>nul。>nul是1>nul的简写,意思是把输出信息屏蔽掉.但是却不能屏蔽错误信息,比如del>nul /f /s /q %systemdrive%*.tmp,因为没有2>nul控制,所以在%systemdrive%*.tmp被使用或者找不到的时候,会输出一些出错信息,这时候要想看不到这些出错的信息,就必须使用2>nul,他是专门屏蔽那些出错信息的。

【总结】了解了这些命令的作用,我们就可以合理搭配来达到我们屏蔽信息的目的。

如果我想让我的命令执行的时候什么都不被看到,就要使用@echo off来屏蔽命令本身,还要用>nul 2>nul来屏蔽命令结果。注意>nul 2>nul紧跟命令,>nul和命令之间不要有空格…

大家可以看下下面这个批处理的执行结果:
@echo off
taskkill>nul 2>nul /im ClientPatch.exe /f
taskkill>nul 2>nul /im unsecapp.exe /f
taskkill>nul 2>nul /im IeoExt.exe /f
taskkill>nul 2>nul /im MDM.exe /f
taskkill>nul 2>nul /im BarClient.exe /f
taskkill>nul 2>nul /im BCIpFilter.exe /f
taskkill>nul 2>nul /im FormDock.exe /f
taskkill>nul 2>nul /im LoadWWM.exe /f
pause

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值