首先看一下微软的TechNet文章使用命令重定向运算符 http://technet.microsoft.com/en-us/library/bb490982.aspx.
Numeric 1相当于句柄stdout(标准输出)。
在批处理文件中数字1重定向时被省略stdout.
例如,将这两行放入批处理文件中并运行它
echo This is just a redirect test.>CapturedStandardOutput.txt
@pause
你会看到cmd.exe
自动插入 1
(空格和 1)留给重定向操作符>
.
一般来说,不建议在批处理文件中添加1 for stdout.
Why?
看看执行了什么:
echo This is just a redirect test.1>CapturedStandardOutput.txt
@pause
您在控制台窗口中看到:
echo This is just a redirect test.1 1>CapturedStandardOutput.txt
还有文件捕获的标准输出.txt包含行:
This is just a redirect test.1
解决方案是在批处理文件中使用:
echo This is just a redirect test. 1>CapturedStandardOutput.txt
这会导致执行以下行:
echo This is just a redirect test. 1>CapturedStandardOutput.txt
文件中现在有以下行捕获的标准输出.txt:
This is just a redirect test.
您在浏览器窗口中看不到的是,与第一个示例相比,文本文件中的行现在以尾随空格结束。因此最好是使用>
and >>
总是没有1否则,控制写入文本文件的内容并不简单。
还有一个提示:
要将文本重定向到以 1, 2, ..., 9 结尾的文件,需要使用以下命令转义数字^
.
执行批处理文件
echo Number is ^1>CapturedStandardOutput.txt
@pause
执行命令行的结果
echo Number is 1 1>CapturedStandardOutput.txt
并在文件中捕获的标准输出.txt线
Number is 1
行尾没有尾随空格。
0左边>
and >>
不得转义以获得数字0写入文本文件。