等待进程直到它终止运行另一个

时间:2013-07-03 11:04:34

标签: batch-file

我有一个可执行文件,可以在当前文件夹中生成报告,我希望在生成报告后将其移动到另一个文件夹:

start /WAIT /B "" "C:\Generator.exe"
for /R "C:\" %%f in (*.xlsx) do copy  "%%f" "C:\ABC"
Del /Q "C:\*.xlsx"

问题是批处理文件中的第二行和第三行在第一行终止之前运行(它向我显示一条消息,即.xlsx文件不存在,这是正常的,因为.exe仍在运行)

2 个答案:

答案 0 :(得分:2)

试试这个:

C:\Generator.exe
for /R "C:\" %%f in (*.xlsx) do copy  "%%~f" "C:\ABC"
Del /Q "C:\*.xlsx"

答案 1 :(得分:1)

c:\generator.exe
:sleeping
tasklist /FI "IMAGENAME eq generator.exe" 
if "%ERRORLEVEL%"=="0" goto sleeping
for /R "C:\" %%f in (*.xlsx) do copy  "%%f" "C:\ABC"
Del /Q "C:\*.xlsx"
exit

有一个睡眠,即generator.exe停止,然后进入代码中的下一行......错误级别检查进程是否正在运行(状态= 0),所以直到错误级别变为1,循环继续。

西特