找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23630|回复: 3

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

[复制链接]
发表于 2011-8-21 09:00:42 | 显示全部楼层 |阅读模式
本帖最后由 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 无论怎样都不显示信息

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-8-21 09:57:54 | 显示全部楼层
我只知道 nul 是空设备的意思,1>nul 表示禁止输出正确的信息 ,2>nul 表示禁止输出错误信息。

评分

参与人数 1PB +5 收起 理由
CrLf + 5 乐于助人

查看全部评分

发表于 2011-8-21 22:11:07 | 显示全部楼层
学习了nul的功能    谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:29 , Processed in 0.023471 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表