批处理 for 执行完一条命令以后再执行下一条

代码
@echo off   
for /f "delims=" %%i in ('dir c:\txt\*.xls /b') do (
"C:\FlashPaper\FlashPaper2.2\FlashPrinter.exe" "%%~$PATH:i" -o "c:\swf\%%~ni.swf"
echo "%%~ni 转换已完成")
pause
for循环取文件名作为参数 调用FlashPrinter.exe
现在的问题是FlashPrinter.exe还没有运行完成 for循环就开始执行下一条了
高手能不能帮我改改 做个判断 如果FlashPrinter.exe执行完 再继续执行下一天FlashPrinter.exe
可能要做进程判断之类的
自己写了一个进程判断的代码 大体思路是
@echo off   
for /f "delims=" %%i in ('dir c:\txt\*.xls /b') do (
"C:\FlashPaper\FlashPaper2.2\FlashPrinter.exe" "%%~$PATH:i" -o "c:\swf\%%~ni.swf"
tasklist /nh|find /i "FlashPrinter.exe"
if ERRORLEVEL 1 (执行下一条for循环不知道这里怎么写) else (继续等待不知道该怎么写)
echo "%%~ni 转换已完成")
pause

用for这种方式是停不住的,不信您在for里加个pause,看看cmd等您吗?
您的思路是对的,但是只能自己涉及变量,写标签,用goto循环。
之间的等待可以用tasklist|find "FlashPrinter.exe" 和if errorlevel 1判断,您不知道怎么写的两个括号里分别goto两个地方(别忘了后一个标签前面价格跳过的goto,否则还执行一遍)或call另外两个批处理就行了。
希望可以帮到您!
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-30
你估算一下程序大约用多长时间,加个延时
@echo off
set n=10
for /f "delims=" %%i in ('dir c:\txt\*.xls /b') do (
"C:\FlashPaper\FlashPaper2.2\FlashPrinter.exe" "%%~$PATH:i" -o "c:\swf\%%~ni.swf"
ping -n %n% 127.1>nul
echo "%%~ni 转换已完成")
pause
相似回答