J'ai des problèmes pour utiliser wmi dans une boucle for. J'essaie simplement de saisir le premier numéro de la version OS pour différencier XP (5) et Win7 (6).batch wmi pour la boucle
Ce qui suit fonctionne parfaitement pour interroger une seule machine.
for /f "tokens=1 delims=." %%a in ('wmic /node:%machine% os get version') do @for /f "tokens=1 delims=." %%b in ("%%a") do @set osver=%%b
echo %osver%
Cependant, une fois que je tente de le mettre dans une boucle, je suis seulement obtenir un blanc pour% osver%
for /f %%G in (list.txt) do (
for /f "skip=2 tokens=2 delims=.," %%a in ('wmic /node:%%G os get version /format:csv') do @for /f "tokens=1 delims=." %%b in ("%%a") do @set osver=%%b
echo %osver%
) > results.txt
Je suppose que c'est un problème avec mon saut/jetons/mais je ne suis pas sûr de savoir exactement où ça va mal. Toute variation sur eux que j'ai essayé se traduit toujours par une ligne vide.
Comment echo %% b par lui-même? echo %% b apparaît comme% b – user3358058
Vous écrivez %% b uniquement si vous travaillez à partir d'un fichier de commandes, et si% est précédé d'un seul si vous travaillez à partir de la ligne de commande. – mordecai