В оболочке Windows, пишущей сценарий (cmd.exe), как Вы присваиваете stdout программы к переменной среды?

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

У меня есть утилита Python, которая предназначается для исправления переменной среды. Этот сценарий просто пишет последовательность символов к stdout. В целях этого вопроса то, что моя утилита записана в Python, не важно, это - просто программа, которую я могу назвать от командной строки, которая производит одну строку текста.

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

set WORKSPACE=[ the output of my_util.py ]

После выполнения этой команды значение переменной среды РАБОЧЕЙ ОБЛАСТИ должно содержать тот же самый текст, который обычно распечатывала бы моя утилита.

Это может быть сделано? Как?


UPDATE1: Кто-то на предложенной работе:

python util.py | set /P WORKSPACE=

В теории, которая присвоила бы stdout сценария Python, превышают РАБОЧУЮ ОБЛАСТЬ огибающего var, и все же это не работает, что идет не так, как надо здесь?

7
задан Community 23 May 2017 в 12:26
поделиться

1 ответ

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

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.

11
ответ дан 6 December 2019 в 23:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: