63 votes

Parcourir les valeurs de chaîne à partir d'un fichier bat de ligne de commande Windows

J'essaie de créer un script batch pour ma machine Windows qui parcourt une liste de valeurs (chaîne/décimale) et utilise chaque valeur comme paramètre à l'intérieur de la boucle.

Vous trouverez ci-dessous un exemple de boucle for simple que j'aimerais utiliser pour afficher tous les différents fichiers de version (de ma liste)

 FOR ? in ('1.1','1.2','2.4','3.9') do echo V[value_from_for_loop].txt

J'ai du mal à parcourir chaque élément et à utiliser une variable dans mon instruction echo.

91voto

Joey Points 148544
for %x in (1.1 1.2 2.4 3.9) do echo V%x.txt

Pour une utilisation dans un fichier batch vous devrez doubler le % :

 for %%x in (1.1 1.2 2.4 3.9) do echo V%%x.txt

15voto

Kurt Pfeifle Points 24491

Supposons que vous ayez une très longue liste de valeurs qu'il sera très inconfortable de saisir sur la ligne de commande. De plus, il existe une limite de longueur pour la ligne de commande DOS.

Dans ce cas, les valeurs peuvent être stockées dans un fichier arbitrairement long, un par ligne. Appelez-le my-values.list , avec un contenu similaire à :

 1.1
1.2
2.4
3.9
3.9.1
3.9.2
3.91
3.91.1
...

Vous pouvez maintenant lire les variables de ce fichier texte, ligne par ligne :

 for /f "tokens=*" %a in (c:\path\to\my-values.list) do echo.  Version%~nxa.txt

2voto

mwpowellhtx Points 113

Quelque chose comme ça, je crois :

 for %x in (1.1 1.2 2.4 3.9) do (
    echo V%x.txt
)

0voto

Ted O'Connor Points 39

Cela ne me laissera pas commenter, mais je voulais ajouter ma valeur de 2 cents ici. Le 'do' doit être sur la même ligne que la parenthèse droite de la commande 'for'. En d'autres termes, cela fonctionnera:

 for %x in (1.1 1.2 2.4 3.9) do echo V%x.txt

...mais cela ne va pas :

 for %x in (1.1 1.2 2.4 3.9)
    do echo V%x.txt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X