[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 【已解决】关于隐蔽命令 2>nul

本帖最后由 raymai97 于 2011-8-21 11:04 编辑

比如我们要隐蔽net的消息,就
  1. net start themes>nul
复制代码
但是如果发生错误,还是会显示,所以就换成
  1. 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 无论怎样都不显示信息
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

我只知道 nul 是空设备的意思,1>nul 表示禁止输出正确的信息 ,2>nul 表示禁止输出错误信息。
1

评分人数

    • CrLf: 乐于助人PB + 5

TOP

学习了nul的功能    谢

TOP

返回列表