Я использую цикл for для выполнения другого исполняемого файла и захвата вывода. Вывод представляет собой набор переменных, таких как
Name=Jim
Address=1234 Main Ave
Phone=425-555-0202
Однако для запуска этого исполняемого файла требуется много времени. Я фиксирую выходные данные и устанавливаю переменные среды с помощью:
for /f "tokens=*" %%a in ('fetch.exe <options>') do (
echo "%%a"
set "%%a"
)
Это работает нормально, однако, если fetch.exe занимает 120 секунд, эхо-часть этого цикла не запускается до тех пор, пока процесс не завершится. завершено через 120 секунд. Простым тестом является создание командного файла, такого как
@echo 1
@echo 2
@echo 3
@echo 4
timeout /t 30
. Затем вызовите его из командной строки через for /f "tokens=*" %a in ('call test.cmd') do (@echo "%a")
. В течение 30 секунд вы не увидите никакого вывода.
Как я могу немедленно начать видеть результат выполнения команды?