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
精彩评论