我创建一个批处理文件,我在用下面的命令麻烦的线路:CMD echo命令只保留最后一个文本
echo Hello & echo.World > Text.txt
每当我做这个命令的输出只显示最后一行,像这样:
世界
但如果我只是做了上面的命令在CMD没有写入文件,它完美地出现在命令提示符。我可以完全访问我的文件,但我仍然无法写出整个文本。
我创建一个批处理文件,我在用下面的命令麻烦的线路:CMD echo命令只保留最后一个文本
echo Hello & echo.World > Text.txt
每当我做这个命令的输出只显示最后一行,像这样:
世界
但如果我只是做了上面的命令在CMD没有写入文件,它完美地出现在命令提示符。我可以完全访问我的文件,但我仍然无法写出整个文本。
批量处理中,>
运算符的优先级高于&
运算符,因此您的示例仅将最后一个命令echo.World
重定向到该文件。第一个命令仍在输出到控制台。
要重定向多个命令,可以用圆括号括起来。
(echo Hello & echo.World) > Text.txt
在分批&是一个命令分隔符。您可以通过使用两条单独的echo
行来产生相同的结果。
回波你好& echo.World> TEXT.TXT
执行作为两个独立的命令,
回波你好 echo.World> TEXT.TXT
这将报告Hello
到控制台和写World
到文件中(你没有提到Hello
出现在控制台上...)
请注意,>创建一个新文件而>>追加到任何现有的文件(或创建一个新文件),以便
echo Hello > Text.txt
echo.World > Text.txt
将首先写Hello
到新文件,然后将其覆盖与World
。
要追加第二行,你需要
echo Hello > Text.txt
echo.World >> Text.txt
,或者在同一行,
echo Hello > Text.txt&echo.World >> Text.txt
一个parenthesised语句序列(又名 “块”)被认为是作为一个复杂的陈述,所以
(echo Hello &echo.World)> Text.txt
会创建一个新文件包含两条线,而
(echo Hello &echo.World)>> Text.txt
会将两行附加到任何现有文件。
还要注意,在>之前的尾部空格也将写入文件。
要非常小心>和>>。如果执行的命令是
echo Hello 1> Text.txt
那么hello 空间将被写入该文件。
如果消息空间一个单一的数字被写入文件终止,那么好,可能没什么就会出现。当我们遇到这种情况时,例如在确定'逻辑设备output will be used. The useful ones here are 1 (standard output) and 2(standard error) so you can redirect errormessages using
2> errorreports.txt`之前紧接在>之前的数字。
如果有这种情况,您可以通过使用
> Text.txt echo Hello 1
克服这一特点