В сценариях оболочки Windows (cmd.exe) как назначить стандартный вывод программы для переменной среды? - PullRequest
7 голосов
/ 29 апреля 2010

В UNIX вы можете назначить вывод сценария переменной среды, используя методику, объясненную здесь - но каков эквивалент Windows?

У меня есть утилита python, предназначенная для исправления переменной среды. Этот скрипт просто записывает последовательность символов в стандартный вывод. Для целей этого вопроса тот факт, что моя утилита написана на python, не имеет значения, это просто программа, которую я могу вызвать из командной строки, которая выводит одну строку текста.

Я бы хотел сделать что-то вроде этого (это работает):

set WORKSPACE=[ the output of my_util.py ]

После выполнения этой команды значение переменной среды WORKSPACE должно содержать точно такой же текст, который обычно выводит моя утилита.

Можно ли это сделать? Как?


ОБНОВЛЕНИЕ 1: Кто-то на работе предложил:

python util.py | set /P WORKSPACE=

Теоретически, это назначило бы stdout Python-скрипта top для env-var WORKSPACE, и все же это не работает, что здесь не так?

1 Ответ

11 голосов
/ 29 апреля 2010

Использование:

for /f "delims=" %A in ('<insert command here>') do @set <variable name>=%A

Например:

for /f "delims=" %A in ('time /t') do @set my_env_var=%A

... запустит команду "time / t" и установит для переменной env "my_env_var" результат.

Не забудьте использовать %% A вместо% A, если вы запускаете это внутри файла .BAT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...