Я должен присвоить вывод программы к переменной с помощью пакетного файла MS.
Таким образом в оболочке Bash GNU я использовал бы VAR=$(application arg0 arg1)
. Мне нужно подобное поведение в Windows с помощью пакетного файла.
Что-то как set VAR=application arg0 arg1
.
Один из способов:
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%
@OP, вы можете использовать для циклов , чтобы фиксировать статус возврата вашей программы, если она выводит что-то кроме чисел
предполагая, что вывод вашего приложения представляет собой числовой код возврата, вы можете сделать следующее
application arg0 arg1
set VAR=%errorlevel%