Batch file 批处理不向文件回显单个数字
在我的部分代码中,我尝试向文件回显单个数字:Batch file 批处理不向文件回显单个数字,batch-file,echo,Batch File,Echo,在我的部分代码中,我尝试向文件回显单个数字: echo 1>test.txt 除此之外,命令解释器不会拾取单个数字,会发出回声 Echo is off. 到文件中。有没有办法解决这个问题?这是最简单的解决方案 >test.txt echo 1 为什么它能解决这个问题?问题是什么 在批处理文件中,输入和输出流的编号从0到9:0=stdin=default input stream,1=stdout=default output stream,2=stderr=default er
echo 1>test.txt
除此之外,命令解释器不会拾取单个数字,会发出回声
Echo is off.
到文件中。有没有办法解决这个问题?这是最简单的解决方案
>test.txt echo 1
为什么它能解决这个问题?问题是什么
在批处理文件中,输入和输出流的编号从0到9:0=stdin=default input stream
,1=stdout=default output stream
,2=stderr=default error stream
和3到9可供用户使用
代码的问题在于表达式1>file
意味着将流1(标准输出)重定向到文件。解析器将数字作为重定向的一部分处理,而不是作为要发送到重定向的数据处理
为了解决这个问题,有必要将数字与重定向操作符分开,但是像echo 1>test.txt
这样的东西也会输出一个传统的空格,这通常是不希望出现的行为
通过对行重新排序来更改命令的编写方式,我们可以在不使用任何传统元素的情况下分离数字和重定向
编辑以适应评论
不需要重新排序就可以完成吗
是的,您还可以将命令与将命令括在括号中的重定向操作符分开
(echo 1)>test.txt
或者,您可以向解析器添加传统指示,对数字进行转义
echo ^1>test.txt
或者使用for
可替换参数来处理数字,在重定向时将其隐藏到解析器
for %%a in (1) do echo %%a>test.txt
或者,使用延迟扩展,或者。。。。实际上,任何确保解析器不会将数字作为流号处理的东西。或(echo(1)>test.txt
@npocmaka,是,或echo^1>test.txt
,但原因是相同的,并且取决于代码放置的位置,右括号或插入符号可能会产生干扰。更改行中的顺序更容易。或echo^1>test.txt
@npoca:示例存储“1”
(空格1)它应该是(echo(1)>test.txt
,或者更简单一些:(echo 1)>test.txt