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


Answers:


68

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


+1我的天哪,太棒了!我完全没有想到这一点。:)
user541686 2011年

除非带有括号(对吗?)。:P现在(很明显,这是一个独立的问题)如何将任意文件名回显到另一个文件?它可能有括号,引号,数字等...
2011年

2
你知道,我想我将作为一个单独的问题提出。:)
2011年

很棒的解决方案,但看起来后面可能仍然有一个CRLF。我们如何应对这种不可阻挡的威胁?
我的堆栈溢出

此处此链接的答案显示了如何将数字2回显到文件中而没有CRLF。
headinabook '17

324

鲜为人知的功能:重定向操作员可以在线路上的任何地方。

>>file.txt echo 2

36

echo ^2>>file.txt 似乎为我工作。


但是后面还有一个CRLF(给我们3个字节)。如何停止?
佩里耶

@Pacerier-有关如何将数字2回显到不带CRLF的文件的信息,请参见以下答案
headinabook '17

@Pacerier您确定这是OP的要求吗?

31

使用^转义符:

Echo ^2>> file.txt

顺便说一下,这背后的逻辑是什么?
佩里耶

3
@Pacerier-在这种情况下,“ 2”具有特殊含义。因此,^转义字符用于将“ 2”视为普通字符。
Moe Sisko

11
echo.2>>text.txt

是的,很奇怪。


4
这很奇怪,并且仅在没有空格/制表符或没有空格的情况下才有效,;=(。这个echo.hello(you2>>text.txt失败了
jeb 2011年

@Kornel,但是后面还有一个CRLF(给我们3个字节)。如何停止?
Pacerier '16

此处此链接的答案显示了如何将数字2回显到文件中而没有CRLF。
headinabook '17

echo.如果echo.当前目录中有一个名为(无扩展名)的文件,则可能会失败,因此请更好地使用echo/...
aschipfl


6

或者您可以使用延迟扩展

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

但是后面仍然有一个CRLF(给我们3个字节)。如何停止?
Pacerier '16

链接上的答案显示了如何将数字2回显到文件中而没有CRLF。
headinabook '17

3

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

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

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


3
这会将ERRORLEVEL设置为1。如果最好将ERRORLEVEL设置为0,则可以使用(echo | set /p dummyName="2") > file.txtsource)之类的东西。
headinabook '17

1
你可以避开管,并使用此:< nul set /P ="2" > file.txt,但后来ErrorLevel变成1,即使有一个虚拟变量...
aschipfl

@headinabook它不仅是不干净,它会设置错误级别为0(如果你想0只(call )
HackingAddict1337

2

要将数字写到文件中而没有换行符,可以使用以下命令:

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

之所以有效,是因为set /A在命令提示符上下文中执行(因此直接在中运行cmd.exe)会返回(最后)结果(不换行)。

如果仍然在命令提示符下工作,则可以使用以下命令:

set /A "2">file.txt

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

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


-1

根据答案,如果有人想知道如何执行此操作:

echo "command1 && command2" > file.txt

没有qoutes的file.txt话,您可以这样做:

echo command1 ^&^& command2 > file.txt

在Windows Server 2003上测试。


1
好吧,这如何回答这个问题?
aschipfl

我应该改一下我的帖子。它是stackoverflow.com/a/7225667/1637178的补充。
1月Święcki0

1
抱歉,我还是不明白。这不是在文件上回显数字……
aschipfl

-1

逃脱危险品'2'

在Linux中: echo \2>file.txt

在Windows中: echo ^2>file.txt

在Windows中这也将工作

echo.2>file.txt 回声和点之间没有空格

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.