Ger*_*ica 1 spaces batch-file handle echo trailing
如果我在名为 的批处理文件中执行以下操作test:
echo number=0 > file
Run Code Online (Sandbox Code Playgroud)
并运行它:
> test
> echo number=0 1> file
Run Code Online (Sandbox Code Playgroud)
file 包含:
number=0?
Run Code Online (Sandbox Code Playgroud)
如果我test改为:
echo number=1> file
Run Code Online (Sandbox Code Playgroud)
并运行它:
> test
> echo number= 1>file
Run Code Online (Sandbox Code Playgroud)
file 包含:
number=
Run Code Online (Sandbox Code Playgroud)
该1显然被解释为stdout 把手,这是可以理解的。
如果我test改为:
echo number=0> file
Run Code Online (Sandbox Code Playgroud)
-和2以9分别-并运行它:
> test
> echo number= 0>file
number=
Run Code Online (Sandbox Code Playgroud)
the0和2to9显然被解释为非stdout 句柄并且file是空的,这也是可以理解的。
和:
echo "number=1"> file
Run Code Online (Sandbox Code Playgroud)
file 包含:
"number=1"
Run Code Online (Sandbox Code Playgroud)
和:
echo (number=1)> file
Run Code Online (Sandbox Code Playgroud)
file 包含:
(number=1)
Run Code Online (Sandbox Code Playgroud)
在编写问题时,我在如何将 ECHO 输出重定向到文件时避免将尾随空格写入文本文件中找到了答案?:
将重定向放在命令前面,如:
> file echo number=0
Run Code Online (Sandbox Code Playgroud)
或者,正如 Stephan 所评论的,将完整的命令分组,而不仅仅是参数:
(echo number=0) > file
Run Code Online (Sandbox Code Playgroud)
(恕我直言,标题使用括号/括号对表达式进行分组有点遗漏。它是对命令和表达式进行分组,不是吗?)