J'ai une question avec la commande batch "for" dans windows.Lecture des valeurs vides dans la commande "for" dans un fichier de commandes Windows
J'ai un fichier keys.txt qui contient cette ligne ..
clé, valeur, x86, Windows7
Je veux analyser cette ligne et stocker les 4 virgule des variables seperated en 4 variables. J'accomplis cela par le script de lot Windows suivant.
for /F "tokens=1,2,3,4* delims=," %%i
in (keys.txt) do (
echo first is %%i
echo second is %%j
echo third is %%k
echo fourth is %%l
echo rest is %%m
echo -------------
)
Toutefois, lorsque i modifier le keys.txt à
clé, valeur ,, windows7
La troisième variable est imprimée comme windows7. Je m'attendrais à ce que la troisième variable soit vide et la quatrième variable à Windows7. Si je donne un espace entre les 2 virgule est comme ça
clé, valeur,, Windows7
Ensuite, il imprime la 3e variable vide et la variable 4 comme Windows7. Quelqu'un sait comment je peux faire en sorte que le cas précédent (c'est-à-dire celui qui n'a pas d'espace) fonctionne également correctement?
Pourquoi utiliser batch pour analyser les fichiers? Avez-vous d'autres options? comme en utilisant un vrai analyseur de fichiers (langage)? Si vous ne pouvez pas télécharger et utiliser des choses, vous pouvez utiliser vbscript, qui est mieux à faire de tels travaux. – ghostdog74
En fait, il y a beaucoup de code écrit en utilisant des scripts batch, donc ce serait une énorme tâche de migrer le tout vers vbs. Cependant, j'ai trouvé une autre alternative qui serait d'écrire un fichier vbs qui créerait un fichier avec une liste de lignes de var = valeur set, puis appelez ce fichier de commandes à partir du fichier batch parent. – Santhosh