2016-06-09 2 views
1

Si je fais ce qui suit dans un fichier batch nommé test:Comment faire écho un nombre de 0 à 9 dans un fichier de commandes Windows dans un fichier sans espace de fin?

echo number=0 > file 

et l'exécuter:

> test 
> echo number=0 1> file 

file contient:

number=0␣ 

Si je change test à:

echo number=1> file 

et l'exécuter:

> test 
> echo number= 1>file 

file contient:

number= 

Le apparemment 1 est interprété comme stdouthandle, ce qui est compréhensible.

Si je change test à:

echo number=0> file 

- et 2-9 respectivement - et l'exécuter:

> test 
> echo number= 0>file 
number= 

l'apparence 0 et 2-9 sont interprétés comme non stdouthandles et file est vide, ce qui est compréhensible, aussi.

Avec:

echo "number=1"> file 

file contient:

"number=1" 

Avec:

echo (number=1)> file 

file contient:

(number=1) 

Répondre

2

Tout en écrivant la question que je trouve la réponse à How to avoid writing trailing spaces into text file on redirecting ECHO outputs to a file?:

Mettre la redirection en face de la commande comme:

> file echo number=0 

ou, commenté par Stephan, group la commande complète, non seulement la Argument:

(echo number=0) > file 

(Le titre Using parenthesis/brackets to group expressions manque un peu, à mon humble avis. C'est au groupe commandes et expressions, n'est-ce pas?)

+2

une autre possibilité: '(echo number = 0)> fichier' – Stephan