这是我的后续问题以前的问题。非常感谢@iTwasnTme,以下脚本(my_loop_exe.bat
)在我的 Windows 10 PC(x64,8 个 CPU)上运行所需数量的可执行文件(EXE)。
@echo off & setlocal
for /d /r %%i in (*)do if exist "%%~i\run_jobs.bat" call %:^) "%%~dpnxi" "run_jobs.bat"
endlocal && goto :eof
%:^)
if not "%~1" == "" (set "_path=%~1" && set "_bat=%~2")
for /f %%i in ('wmic process where "name like '%%cmd.exe%%'" get commandline ^| findstr /c:"%_bat%" ^| find /v /c ""
')do if %%~i leq 6 (start "" /b /d "%_path%" %comspec% /s /c "%_path%\%_bat%") else >nul (timeout 10 & goto %:^))
给定 20 个目录,我一直在尝试为上述脚本添加执行时间和进度条。我发现了几个建议这里,这里, 和这里。我尝试使用timecmd.bat
方法,将其添加到操作系统路径,并将其与上述脚本一起使用,如第一个网络链接中所建议的那样。
timecmd.bat my_loop_exe.bat
它没有按预期工作。时间只在开始时显示。这是大概因为上面的my_loop_exe.bat
批处理脚本不会在所有目录中的 EXE 执行完成后自动返回到 CMD。我需要点击它ENTER
然后它才会返回。
我也尝试过:
echo %time%
my_loop_exe.bat
echo %time%
作为单独的.bat
文件并通过 CMD 运行。它在脚本开头打印了两次时间,然后出现了相同的行为,上面的循环批处理脚本运行,但在处理完所有目录后不会返回控制台(我不明白为什么)。
如何向上述脚本添加执行时间,以便它显示脚本的开始时间、结束时间和总执行时间以及进度条(无限进度条,@iTwasnTme 让我意识到添加 % 进度条可能不准确)?