Можно ли установить переменную окружения для вывода команды в cmd.exe - PullRequest
8 голосов
/ 08 июля 2010

Мне нужно сделать эквивалент

set ENVAR=`some-command`

В скрипте windows / cmd.exe. Cygwin не вариант.

Для бонусных марок: существует ли какой-нибудь cmd.exe эквивалент бэкстиков в целом?

Ответы [ 2 ]

7 голосов
/ 08 июля 2010

Быстрый и грязный способ - перенаправить его в файл и затем прочитать, например,

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

Я думаю, for также может помочь вам, но я не помню точный синтаксис. Попробуйте что-то вроде

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

Я, наверное, забыл некоторые token или delim в опциях ...

1 голос
/ 01 февраля 2015

Не «вероятно», абсолютно необходимо указывать «delims =» в качестве последнего токена (значит, без разделителей), если только вы не хотите, чтобы ваша переменная содержала только первый пробел входных данных.

Т.е.

FOR /F "usebackq delims=" %%a IN (`cygpath.exe -u "%~1"`) DO (
  SET CMDNAME=%%~a
  SHIFT
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...