Присвойте вывод программы к переменной с помощью пакетного файла MS

Я должен присвоить вывод программы к переменной с помощью пакетного файла MS.

Таким образом в оболочке Bash GNU я использовал бы VAR=$(application arg0 arg1). Мне нужно подобное поведение в Windows с помощью пакетного файла.

Что-то как set VAR=application arg0 arg1.

269
задан Mateusz Konieczny 15 February 2019 в 15:52
поделиться

3 ответа

Один из способов:

application arg0 arg1 > temp.txt
set /p VAR=<temp.txt

Другой:

for /f %%i in ('application arg0 arg1') do set VAR=%%i

Обратите внимание, что первый % в %% i используется для экранирования % после он необходим при использовании приведенного выше кода в пакетном файле, а не в командной строке. Представьте, что в вашем test.bat есть что-то вроде:

for /f %%i in ('c:\cygwin64\bin\date.exe +"%%Y%%m%%d%%H%%M%%S"') do set datetime=%%i
echo %datetime%
407
ответ дан 23 November 2019 в 02:19
поделиться

@OP, вы можете использовать для циклов , чтобы фиксировать статус возврата вашей программы, если она выводит что-то кроме чисел

10
ответ дан 23 November 2019 в 02:19
поделиться

предполагая, что вывод вашего приложения представляет собой числовой код возврата, вы можете сделать следующее

application arg0 arg1
set VAR=%errorlevel%
7
ответ дан 23 November 2019 в 02:19
поделиться
Другие вопросы по тегам:

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