CMD Echo命令仅保留最后一行文本

时间:2015-11-30 23:26:32

标签: windows batch-file cmd echo command-prompt

我正在创建批处理文件,但我遇到以下命令时出现问题:

    echo Hello & echo.World > Text.txt

每当我执行此命令时,输出仅显示最后一行,如下所示:

  

世界

但是如果我只是在CMD中执行上述命令而不写入文件,它在命令提示符中就会完美显示。我可以完全访问我的文件,但我似乎仍然无法编写整个文本。

2 个答案:

答案 0 :(得分:6)

批处理中,override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? { let translatedPoint = button.convertPoint(point, fromView: self) if (CGRectContainsPoint(button.bounds, translatedPoint)) { print("Your button was pressed") return button.hitTest(translatedPoint, withEvent: event) } return super.hitTest(point, withEvent: event) } 运算符的优先级高于>运算符,因此您的示例仅将最后一个命令&重定向到该文件。第一个命令仍然输出到控制台。

要重定向多个命令,可以用括号括起来。

echo.World

答案 1 :(得分:3)

批处理& 是一个命令分隔符。您可以使用两个单独的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

带括号的语句序列(又名"块")被视为一个复杂的语句,所以

(echo Hello &echo.World)> Text.txt

会创建一个包含两行的新文件,而

(echo Hello &echo.World)>> Text.txt

会将两行附加到任何现有文件。

另请注意,> 之前的尾随空格也会写入文件。

要非常小心> >> 。如果你执行的命令是

echo Hello 1> Text.txt

然后将hello Space 写入文件。

如果以 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