批量不回显单个数字到文件

时间:2015-01-27 15:54:55

标签: batch-file echo

在我的部分代码中,我试图将一个数字回显到一个文件:

echo 1>test.txt

除了命令解释器没有拾取单个数字,回显

Echo is off.

到文件。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

这是最简单的解决方案

>test.txt echo 1

为什么要解决这个问题?问题是什么?

在批处理文件中,输入和输出流的编号从0到9:0= stdin = default input stream1= stdout = default output stream2= stderr = default error stream和3到9可供用户使用。

您的代码存在的问题是表达式1> file表示redirect the stream 1 (standard output) to the file。解析器将数字作为重定向的一部分处理,而不是作为要发送到重定向的数据。

要解决这个问题,必须将数字与重定向运算符分开,但echo 1 >test.txt之类的内容也会输出一个aditional空间,通常是一种不受欢迎的行为。

通过重新排序行来改变命令的写入方式,我们可以将数字和重定向分开,而不需要任何附加元素。

编辑

以适应评论

可以不重新排序吗?

是的,您也可以将命令与括在括号中的命令的重定向操作符分开

(echo 1)>test.txt

或者您可以向解析器添加aditional指示,转义数字

echo ^1>test.txt

或使用for可替换参数来处理数字,在重定向时将其隐藏到解析器

for %%a in (1) do echo %%a>test.txt

或者,使用延迟扩展,或....几乎任何确保解析器不会将数字作为流号处理的内容。