294 votes

Comment définir la sortie des commandes en tant que variable dans un fichier batch

Est-il possible de définir la sortie d'une instruction d'un fichier batch sur une variable, par exemple :

 findstr testing > %VARIABLE%

echo %VARIABLE%

317voto

Mechaflash Points 2483
FOR /F "tokens=* USEBACKQ" %%F IN (`command`) DO (
SET var=%%F
)
ECHO %var%

J'utilise toujours le USEBACKQ afin que si vous avez une chaîne à insérer ou un nom de fichier long, vous pouvez utiliser vos guillemets sans gâcher la commande.

Maintenant, si votre sortie contient plusieurs lignes, vous pouvez le faire

 SETLOCAL ENABLEDELAYEDEXPANSION
SET count=1
FOR /F "tokens=* USEBACKQ" %%F IN (`command`) DO (
  SET var!count!=%%F
  SET /a count=!count!+1
)
ECHO %var1%
ECHO %var2%
ECHO %var3%
ENDLOCAL

67voto

Yuri Points 1111

en une seule ligne :

 FOR /F "tokens=*" %%g IN ('*your command*') do (SET VAR=%%g)

la sortie de la commande sera mise en %g puis en VAR.

Plus d'informations : https://ss64.com/nt/for_cmd.html

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