BATCH - 在开始下一个结果之前等待可执行文件完成

时间:2014-06-01 21:05:32

标签: batch-file executable

我在这方面几乎是一个菜鸟,所以任何帮助都会受到赞赏。

我正在尝试在给定文件夹中的所有.R3D文件上运行视频转码可执行文件REDline。 REDline只接受单个文件,这就是问题所在。我终于让它以递归方式搜索我需要的文件,但我的问题是搜索功能在第一个完成转码之前将下一个结果传递给REDline。我的搜索结果需要在REDline内的变量中运行。

以下是代码:

for /r D:\folder\ %%a in (*) do (
   "C:/Program Files/REDCINE-X PRO 64-bit/REDLine.exe" --exportPreset "Prores_Intermediate" --i "%%~dpnxa" --useRSX 2 --masterRMDFolder "" -s 0 -e 95

)

大约.7秒后,REDline报告“收到来自客户的停止消息”。

我认为这不是REDline错误,因为我已经能够成功转码单个文件。

感谢。

2 个答案:

答案 0 :(得分:0)

运行可执行文件时尝试start /wait

如果这没有帮助,可执行文件可能会启动另一个执行实际作业的可执行文件。在这种情况下,使用Process MonitorProcess Explorer标识其他可执行文件。检查其命令行参数以查看是否可以直接运行该可执行文件。

如果您无法自己运行其他进程,则可以等到该进程退出。请参阅StackOverflow上的Wait for executable to finish

答案 1 :(得分:0)

我不熟悉特定的可执行文件,但您可以尝试以下建议: - 检查REDLine.exe(文档或可能/?)的允许参数,以确定是否有任何可能解决您的问题 - 有一些工具可以让您检查进程的存在(Microsoft Sysinternals,检查以PS * .exe开头的那些)http://technet.microsoft.com/de-de/sysinternals/bb545021.aspx 使用它来改进你的循环,以便在继续下一个循环之前检查进程是否先运行 - 或者循环没有做任何事情,直到进程退出,你可以重复调用ping循环中的localhost进行修复例如,时间间隔 - 检查程序返回的错误代码,看看是否对您有所帮助 - 将启动编码的代码放在自己的批处理文件中,并检查进程当前是否正在运行 - 在启动之前使用创建虚拟文件,并在完成后删除它以识别批处理实例是否正在运行 - 检查直接从批处理文件调用命令与使用start命令同时运行命令之间的区别

相关问题