如何从批处理脚本回显“2”(无引号)到文件?

如何从批处理脚本将数字 2回显到文件中?

这样行不通:

Echo 2>> file.txt

因为 2>>是一个特殊的命令

34242 次浏览

使用 (ECHO 2)>>file.txt。这将输出没有任何空格的 2

echo ^2>>file.txt似乎对我有用。

使用 ^转义:

Echo ^2>> file.txt
echo.2>>text.txt

是的,很奇怪。

鲜为人知的特性: 重定向操作符可以在行中到达任何地方。

>>file.txt echo 2

另一种方法

echo>>file.txt 2

或者你可以用延迟展开

setlocal EnableDelayedExpansion
set "var=2"
echo(!var!>> file.txt

基于 这个的答案,如果有人想知道如何做到这一点:

echo "command1 && command2" > file.txt

如果在 file.txt中没有引号,那么你可以这样做:

echo command1 ^&^& command2 > file.txt

在 WindowsServer2003上测试。

逃避字符’2’

在 linux 中: echo \2>file.txt

在窗口: echo ^2>file.txt

在窗口这也将工作

回声和点之间没有空格

如果需要准确的写入,请使用以下命令

(ECHO |set /p=2)>>file.txt

DMan 的命令将在“2”后面产生一个0x0D0A 换行符

要将一个数字写入一个没有尾部分行符的文件,可以使用以下方法:

cmd /C set /A "2">file.txt

这是可行的,因为当在命令提示符上下文中执行时(因此当直接在 cmd.exe中运行时) ,set /A返回(最后一个)结果(没有换行符)。

如果您使用的是命令提示符,您可以简单地使用以下命令:

set /A "2">file.txt

虽然您不能在批处理文件中使用它,但是您需要额外的 cmd /C来强制正确的执行上下文。

不用说,这当然只能输出数字,或者精确地说,有符号的32位整数。