CMD Echo 命令只保留最后一行文本
CMD Echo Command Keeps Only Last Line of Text
我正在创建批处理文件,但在使用以下命令时遇到问题:
echo Hello & echo.World > Text.txt
每当我执行此命令时,输出仅显示最后一行,如下所示:
World
但是,如果我只是在 CMD 中执行上述命令而不写入文件,它会完美地显示在命令提示符中。我可以完全访问我的文件,但我似乎仍然无法编写整个文本。
在批处理中,>
运算符的优先级高于 &
运算符,因此您的示例只是将最后一个命令 echo.World
重定向到文件。第一个命令仍在输出到控制台。
要重定向多个命令,您可以用括号将它们括起来。
(echo Hello & echo.World) > Text.txt
批量 & 是命令分隔符。您可以使用两个单独的 echo
行产生相同的结果。
echo 你好&echo.World > Text.txt
作为两个独立的命令执行,
echo 你好
echo.World > Text.txt
这将向控制台报告 Hello
并将 World
写入文件(您没有提到 Hello
出现在控制台上...)
请注意,> 创建了一个 new 文件,而 >> 附加到任何现有文件(或创建一个新文件)所以
echo Hello > Text.txt
echo.World > Text.txt
会先将 Hello
写入 new 文件,然后用 World
.
覆盖它
要追加第二行,您需要
echo Hello > Text.txt
echo.World >> Text.txt
或者,在一行中,
echo Hello > Text.txt&echo.World >> Text.txt
带括号的语句序列(又名 "block")被视为一个复杂语句,因此
(echo Hello &echo.World)> Text.txt
将创建一个包含这两行的新文件,而
(echo Hello &echo.World)>> Text.txt
会将这两行附加到任何现有文件。
另请注意,> 之前的尾随空格也将写入文件。
要非常小心 > 和 >>。如果你执行的命令是
echo Hello 1> Text.txt
然后helloSpace会写入文件
如果将以 Space一个数字 结尾的消息写入文件,那么好吧,可能什么也不会出现。当我们遇到这种情况时,> 之前的数字决定了哪个“逻辑设备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
我正在创建批处理文件,但在使用以下命令时遇到问题:
echo Hello & echo.World > Text.txt
每当我执行此命令时,输出仅显示最后一行,如下所示:
World
但是,如果我只是在 CMD 中执行上述命令而不写入文件,它会完美地显示在命令提示符中。我可以完全访问我的文件,但我似乎仍然无法编写整个文本。
在批处理中,>
运算符的优先级高于 &
运算符,因此您的示例只是将最后一个命令 echo.World
重定向到文件。第一个命令仍在输出到控制台。
要重定向多个命令,您可以用括号将它们括起来。
(echo Hello & echo.World) > Text.txt
批量 & 是命令分隔符。您可以使用两个单独的 echo
行产生相同的结果。
echo 你好&echo.World > Text.txt
作为两个独立的命令执行,
echo 你好 echo.World > Text.txt
这将向控制台报告 Hello
并将 World
写入文件(您没有提到 Hello
出现在控制台上...)
请注意,> 创建了一个 new 文件,而 >> 附加到任何现有文件(或创建一个新文件)所以
echo Hello > Text.txt
echo.World > Text.txt
会先将 Hello
写入 new 文件,然后用 World
.
要追加第二行,您需要
echo Hello > Text.txt
echo.World >> Text.txt
或者,在一行中,
echo Hello > Text.txt&echo.World >> Text.txt
带括号的语句序列(又名 "block")被视为一个复杂语句,因此
(echo Hello &echo.World)> Text.txt
将创建一个包含这两行的新文件,而
(echo Hello &echo.World)>> Text.txt
会将这两行附加到任何现有文件。
另请注意,> 之前的尾随空格也将写入文件。
要非常小心 > 和 >>。如果你执行的命令是
echo Hello 1> Text.txt
然后helloSpace会写入文件
如果将以 Space一个数字 结尾的消息写入文件,那么好吧,可能什么也不会出现。当我们遇到这种情况时,> 之前的数字决定了哪个“逻辑设备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