关于批处理重定向
重定向符号有 < 、> 、>> 、<& 、>& 和 | 共六个。
重定向符号的作用如下表所示:
符号 作用
——————————————————————————————
< 从文件或设备(如默认的 con 键盘)中读取命令输入。
> 将命令输出写入到文件或设备(如 prn 打印机)中。
>> 将命令输出添加到文件末尾而不删除文件中的信息。
<& 从后一个句柄读取输入并写入到前一个句柄输出中。
>& 将前一个句柄的输出写成后一个句柄的输入。
| 读取前一个命令中的输出作为后一个命令的输入。也称作管道符。
——————————————————————————————
注意:句柄的输入输出只是其指向,真正的输入输出是靠设备。
重定向符号的默认句柄,< 的默认句柄是 0,> 的默认句柄是 1。
可用句柄(0 - 9)如下表:
句柄 句柄号 说明
——————————————————————————————
STDIN 0 标准输入,默认从键盘输入
STDOUT 1 标准输出,默认输出到命令提示符窗口
STDERR 2 标准错误输出,默认输出到命令提示符窗口
UNDEFINED 3-9 这些句柄由应用程序和各个具体工具单独定义。
——————————————————————————————
设备
空设备,用 nul 表示。
存储设备,文件就归到这类。
不常用的如:打印机 prn。
(原文地址:http://bbs.bathome.net/viewthread.php?tid=2579)
作一点补充:平时用到最多的应该就是 > nul 了,它只是简化的重定向标准输出 1> nul 的写法,与此类似, 2> 就是重定向标准错误输出。
import os,time
cmd = r'net use X: \\192.168.3.166\xuxinhua 2>nul'
while (True):
print cmd
nRet = os.system(cmd)
if (nRet==0):
print r'run cmd success,after 5(s) exit!'
time.sleep(5)
exit()
time.sleep(5)