@echo off dans cmd
Je suis en train d'écrire un script BAT et j'ai le texte suivant:
@echo off
REM Comments here
SETLOCAL ENABLEDELAYEDEXPANSION
set PROG_ROOT=C:\Prog
set ONE=1
echo 1>> %PROG_ROOT\test.txt
echo %ONE%>> %PROG_ROOT\test.txt
for /f "tokens=*" %%f in (folders.txt) do (
echo %%f>> %PROG_ROOT\test.txt
)
ENDLOCAL
Mon folders.txt contient le nombre "5".
Mon test.txt la sortie est
ECHO is off
ECHO is off
5
Je ne comprends pas pourquoi les 2 premières lignes de sortie a "ECHO off", tandis que la troisième ligne est imprimée correctement. Comment puis-je imprimer le bon de sortie?
ETA: j'ai essayé
echo 1>> %PROG_ROOT\test.txt
echo %ONE% >> %PROG_ROOT\test.txt
et j'ai pu imprimer
ECHO is off
1
Cependant, j'ai besoin de ne PAS imprimer l'espace de fin après le nombre.
OriginalL'auteur Rayne | 2012-09-20
Vous devez vous connecter pour publier un commentaire.
1>
(et plus généralementn>
pour un chiffren
) est interprété comme une redirection, et doncecho 1>>
semblecmd
comme unecho
sans arguments.echo
sans arguments imprimer leecho
état (ici,ECHO is off
).De fixer, d'échapper à la entier avec un
^
caractère:Ou de déplacer la redirection vers l'avant:
>>%PROG_ROOT%\test.txt echo %ONE%
OriginalL'auteur nneonneo
OriginalL'auteur Nguyễn Lợi