Я использую исполняемый файл (rar.exe), который обрабатывает каждый файл в каталоге и все подкаталоги. после завершения каждого файла выводится имя файла и сообщение OK.
Например, если в каталоге и его подкаталогах содержится 1000 файлов, будет отображаться 1000 сообщений. каждое сообщение точно отображается после обработки соответствующего файла. Я могу получить количество файлов в этом каталоге, используя следующий код:
setlocal enabledelayedexpansion
set "cmd=dir %1 /s /A:-d /b"
set /A fileCounts=0
for /f %%a in ('%cmd%') do SET /A fileCounts+=1
Я хочу показать процент работы. Я передал результат исполняемого файла в командный файл и использовал два следующих кода:
@echo off
setlocal enabledelayedexpansion
SET /A counts=0
:do
set /p _s=
if "%_s%"=="" goto end
set /A counts+=1
echo %counts%: "%_s%"
goto do
:end
endlocal
@echo off
setlocal enabledelayedexpansion
SET /A counts=0
for /F "tokens=*" %%a in ('more') do (
set /A counts+=1
echo %counts%: #%%a
)
, первый из них работает некорректно. второй работает, но ждет завершения выполняемого задания и начинает выводить результат. поэтому второй также не пригоден для использования
приветствуется любой совет получить результат исполняемого файла в реальном времени и показать процент выполнения задания (или даже количество строк в это время).