Подсчет в скрипте .bat. Echo не отображает обновленное значение в цикле for

Я написал пакетный файл для массовой обработки видео с помощью интерфейса командной строки ручного тормоза в Windows 10. Я добавил несколько строк, чтобы отобразить счетчик того, сколько файлов было найдено в начале, каков текущий прогресс и окончательное количество успешных преобразований. является. Начальный счет работает нормально, окончательный счет работает нормально. Итак, я знаю, что переменная обновляется правильно. Однако счетчик выполнения всегда отображает 0 из X. Это как если бы переменная не обновлялась до завершения цикла for. Есть ли ошибка, которую я делаю, или я пытаюсь обойти эту переменную для обновления в цикле for? Строка, которая не работает: echo Count is currently %count_convert% of %count_total%

@echo off
set /A count_convert = 0
set /A count_total = 0
pushd %~dp0
for /R %%f in 
(*.mod,*.m4v,*.mov,*.vob,*.mpg,*.mpeg,*.avi,*.mkv,*.wmv,*.flv,*.webm,*.mts,*.m2ts,*.3gp,*.mp2,*.ptv) 
do (
   set /A count_total+=1
)
for /R %%f in (*.m4v,*.mov,*.vob,*.mpg,*.mpeg,*.avi,*.mkv,*.wmv,*.flv,*.webm,*.mts,*.m2ts,*.3gp,*.mp2,*.ptv) do (
   echo Count is currently %count_convert% of %count_total%
   C:\HandBrakeCLI --preset-import-file "C:\encode.json" -Z "NewPreset" -i "%%f" -o "%%~dpf%%~nf_conv.mp4"
   if exist "%%~dpf%%~nf_conv.mp4" (
       del "%%f"
       ren "%%~dpf%%~nf_conv.mp4" "%%~nf.mp4"
       set /A count_convert+=1
   ) 
)
popd
echo Count is: %count_convert% out of %count_total% attempted.
pause

0 ответов

Другие вопросы по тегам