开发者

How to echo "2" (no quotes) to a file, from a batch script?

How do I 开发者_StackOverflowecho the number 2 into a file, from a batch script?

This doesn't work:

Echo 2>> file.txt

because 2>> is a special command. :(


Little-known feature: The redirection operator can go anywhere on the line.

>>file.txt echo 2


Use (ECHO 2)>>file.txt. This will output 2 without any spaces.


echo ^2>>file.txt appears to work for me.


Use the ^ escape :

Echo ^2>> file.txt


echo.2>>text.txt

Yes, it's weird.


another method

echo>>file.txt 2


Or you can use the delayed expansion

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


If you need an accurate write, use this command

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

the command by DMan will produce a 0x0D0A line break behind the "2"


To write a number to a file without a trailing line-break you could use the following:

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

This works, because set /A returns the (last) result (without line-break) when executed in command prompt context (hence when directly run in cmd.exe).

If you are working in command prompt anyway, you could simply use this:

set /A "2">file.txt

Though you cannot use that in a batch file, you need the extra cmd /C to force the right execution context.

Needless to say, this can of course only output numbers, or precisely said, signed 32-bit integers.


Based on this answer, if anyone is wondering how to do this:

echo "command1 && command2" > file.txt

with no qoutes in file.txt then you do it like this:

echo command1 ^&^& command2 > file.txt

Tested on Windows Server 2003.


escape the haracter '2'

in linux: echo \2>file.txt

in windows: echo ^2>file.txt

in windows this also will work

echo.2>file.txt no space between echo and the dot

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜