DOS下令里的>nul参数起什么作用

DOS命令里的>nul参数起什么作用?

DOS命令里的>nul参数起什么作用?

DOS下令里的>nul参数起什么作用
2007-11-01 09:50
nul是Dos中的一个设备文件名 表示空设备
CON 控制台(键盘/显示器) AUX 第一串行通信口
PRN 第一并行通信口/打印机 COM1 第一串行通信口
LPT1 第一并行通信口/打印机 COM2 第一串行通信口
LPT2 第一并行通信口/打印机 NUL 空文件


>nul 是屏蔽标准输出在屏幕上的显示,
2>nul 是屏蔽出错显示,
>nul 2>nul 是无论对错,都屏蔽屏幕显示。
虚拟的空设备NUL有三种常见的用法:

  1. 用来删除文件:
  COPY NUL<文件名>
  一次只能删除一个文件,且删除后用UNDELETE和PCTOOLS无法恢复。

  2. 屏蔽某些出错信息或DOS提示,如:
  COPY *.* C:>NUL
  这样,原来显示在屏幕上的"*.* files copies.”的提示将被屏蔽不再显示,这在编制批文件时非常有用。

  3. 判断目录在存在
  在批文件中可用IF子句判断文件的存在,却没有专用于判断目录存在的语句,可用NUL进行,例如:
  IF EXIST C:CX NUL MD CX1
  表示如果C盘根目录下存在CX子目录则在根目录下建立名为CX1的子目录,需指出的是,此判断命令在DOS提示符下直接键入无效。必须用于批文件中。
关于 ping -n 1 127.1>nul:

1、ping是测试网络连接性的网络命令,参数"-n 1"表示只发送一次ICMPS数据包来测试网络的连接性。

2、127.1表示本机保留IP地址,实际就是127.0.0.1,ping 127.1就表示ping 127.0.0.1,可以测试网卡及TCP/IP协议是否正常安装及工作。

3、">nul"表示把命令产生的屏幕显示信息重定向(>)到空设备(nul),这样在屏幕上就没有显示ping命令的执行结果了。如果想屏蔽出错信息,可以用">nul 2>nul"屏蔽一切屏幕输出。

如果想屏蔽出错信息,可以用">nul 2>nul"屏蔽一切屏幕输出。
这个">nul 2>nul"可以屏蔽一切屏幕的输出可以这样理解:

  假如你执行一个命令,但是不想在屏幕里看到这个命令的执行情况,可以使用"[命令]>nul"就可以屏蔽命令在屏幕上的输出了,但是有的命令执行会出错,即使用了">nul"也不能屏蔽命令产生的信息,所以就在后面加" 2>nul"这个,就是"[命令]>nul 2>nul",这样,不管命令是否正确的运行,都不会在屏幕看到这个命令所产生的屏幕显示了。

  我们举一个简单的例子吧。

  用"dir"命令可以显示当前目录的文件及文件夹列表,这时如果用"dir>nul",你就看不见dir命令执行的屏幕输出了,那么你再键入"dirr"会是什么情况呢?这时会显示" 'dirr' 不是内部命令,也不是外部命令,也不是批处理文件。",这时你也许会用"dirr>nul"来屏蔽这个错误提示,但是告诉你,你的猜想是错的,因为依然会出现" 'dirr' 不是内部命令,也不是外部命令,也不是批处理文件。"这个错误提示,这时如果你用"dirr>nul 2>nul"的话,你就在屏幕上看不到上面的出错提示了。不知道你再明白了没有。

  如果你想了解更多的关于nul的说明,可以在论坛里面搜索一下,可以搜索到willsort兄详细及精彩的关于nul用法的解说的。