Est-il possible de définir une variable d'environnement à la sortie d'une commande dans cmd.exe
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
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