如果我在名为test
的批处理文件中执行以下操作:
echo number=0 > file
并运行它:
> test
> echo number=0 1> file
file
包含:
number=0␣
如果我将test
更改为:
echo number=1> file
并运行它:
> test
> echo number= 1>file
file
包含:
number=
1
显然被解释为stdout
handle,这是可以理解的。
如果我将test
更改为:
echo number=0> file
分别为 - 和2
到9
- 并运行它:
> test
> echo number= 0>file
number=
0
和2
到9
显然被解释为非stdout
handles而file
为空,这是可以理解的,太
使用:
echo "number=1"> file
file
包含:
"number=1"
使用:
echo (number=1)> file
file
包含:
(number=1)
答案 0 :(得分:3)
在撰写问题时,我在How to avoid writing trailing spaces into text file on redirecting ECHO outputs to a file?找到答案:
将重定向放在命令前面,如:
> file echo number=0
或者,如Stephan所评论,group完整的命令,而不仅仅是参数:
(echo number=0) > file
(标题Using parenthesis/brackets to group expressions错过了一点,恕我直言。它分组命令和表达式,不是吗?)