关于批处理中屏蔽命令行信息输出 您所在的位置:网站首页 Bat运行bat文件隐藏命令框 关于批处理中屏蔽命令行信息输出

关于批处理中屏蔽命令行信息输出

2024-02-22 13:40| 来源: 网络整理| 查看: 265

原文地址: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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有