标题:
[其他]
【已解决】关于隐蔽命令 2>nul
[打印本页]
作者:
raymai97
时间:
2011-8-21 09:00
标题:
【已解决】关于隐蔽命令 2>nul
本帖最后由 raymai97 于 2011-8-21 11:04 编辑
比如我们要隐蔽net的消息,就
net start themes>nul
复制代码
但是如果发生错误,还是会显示,所以就换成
net start themes>nul 2>nul
复制代码
结果无论运行成功或否,都不会显示消息
我不明白的是,2>nul 其实是什么东西,为何一定要 2>nul 呢?如果我放1>nul或3>nul就不行了
2>nul到底是什么神奇的东西呢?
——————————————————————————
答:
重定向的作用是人为修改输出、输入的目标设备,比如把本该输出到屏幕的内容输出到打印机prn,或者输出到文件file,再或者输出到空设备nul,每个句柄只能有一个指向,所以如果把输出重定向到空设备上就相当于屏蔽了这个句柄的输出
句柄0往往是默认输入句柄,句柄1为默认的正确回显输出句柄,而句柄2一般输出错误回显,这只是约定俗成的规律,也有不遵守的,比如type命令的句柄2并非总是错误输出,还有某些命令并不开启句柄0,比如wmic。
至于句柄3~9则由命令自定义,不过一般只用到0~2这三个句柄。【感谢else回答】
例子:
net start uxsms 2>nul 只显示正确时的信息,隐蔽错误信息
net start uxsms >nul 只显示错误信息,隐蔽正确时的信息
net start uxsms >nul 2>nul 无论怎样都不显示信息
作者:
545810831
时间:
2011-8-21 09:57
我只知道 nul 是空设备的意思,1>nul 表示禁止输出正确的信息 ,2>nul 表示禁止输出错误信息。
作者:
mstsc
时间:
2011-8-21 22:11
学习了nul的功能 谢
欢迎光临 批处理之家 (http://bbs.bathome.net/)
Powered by Discuz! 7.2