Как получить результат команды в переменной в Windows? - PullRequest
119 голосов
/ 20 сентября 2008

Я хочу получить результат команды как переменную в пакетном сценарии Windows (см. , как получить результат команды в bash для эквивалента сценария bash). Решение, которое будет работать в .bat-файле, предпочтительнее, но приветствуются и другие распространенные сценарии Windows.

Ответы [ 13 ]

0 голосов
/ 19 марта 2019

Вы должны использовать команду for, вот пример:

@echo off
rem Commands go here
exit /b
:output
for /f "tokens=* useback" %%a in (`%~1`) do set "output=%%a"

и вы можете использовать call :output "Command goes here", тогда вывод будет в переменной %output%.

Примечание: Если у вас есть вывод команды, который является многострочным, этот инструмент set выведет на последнюю строку вашей многострочной команды.

0 голосов
/ 13 февраля 2019
@echo off
setlocal EnableDelayedExpansion
FOR /F "tokens=1 delims= " %%i IN ('echo hola') DO (
    set TXT=%%i
)
echo 'TXT: %TXT%'

результат 'TXT: hola'

0 голосов
/ 20 сентября 2008

Пожалуйста, обратитесь к этому http://technet.microsoft.com/en-us/library/bb490982.aspx, который объясняет, что вы можете делать с выводом команды.

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