Est-il possible de définir une variable d'environnement à la sortie d'une commande dans cmd.exe

StackOverflow https://stackoverflow.com/questions/3199696

  •  02-10-2019
  •  | 
  •  

Question

Je dois faire l'équivalent de

set ENVAR=`some-command`

Dans un windows / script cmd.exe. Cygwin est pas une option.

Pour les marques de bonus: Y at-il un équivalent cmd.exe de backticks dans générale

Était-ce utile?

La solution

Une façon rapide et sale serait redirigeant vers un fichier, puis lire ceci, par exemple.

some-command>out.txt
set /p ENVAR=<out.txt

Je pense que for peut aussi vous aider, mais je ne me souviens pas la syntaxe exacte. Essayez quelque chose comme

for /f "usebackq" %x in (`some-command`) do set ENVAR=%x

J'ai probablement oublié une token ou delim dans les options ...

Autres conseils

Non « probablement », il est absolument indispensable de préciser « delims = » en dernier jeton (moyen, pas de délimiteur), à moins que vous ne souhaitez que contenir votre variable jusqu'au premier espace des données d'entrée.

i.e..

FOR /F "usebackq delims=" %%a IN (`cygpath.exe -u "%~1"`) DO (
  SET CMDNAME=%%~a
  SHIFT
)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top