好的,所以我很困惑我应该如何正确地标题我的问题,所以我会尽力在这里解释一下。
我试图通过在批处理文件中将它们拼接在一起来运行iMacros和一些python脚本。这是我想要的虚拟代码:
"C:\Program Files\Mozilla Firefox\firefox.exe" imacros://run/?m="#Current.iim"
PAUSE
@py %~dp0\SomePythonProgram.py %*
PAUSE
添加PAUSE的原因是iMacro自动化需要一段时间(大约8分钟)并且它会截取某些选项卡的屏幕截图。随后的python程序将调整这些图像的大小,因此一旦iMacros停止运行,用户必须返回cmd(如果他们已经去了其他地方)并在执行python程序之前按任意键。
如果在任务管理器中看到Firefox已经打开或在背景中运行,上面的代码实际工作。现在,当我在运行批处理文件之前在任务管理器中杀死它时,而不是通常的"按任意键..." cmd卡在这部分:
有没有办法继续使用其余代码(可能通过按键/热键)?或者我需要用其他东西替换PAUSE吗?我尝试过TRYOUT,它似乎遇到了同样的问题。我使用的是Windows 10,因此SLEEP不是内置的。那会帮助我实现我想要的吗?
答案 0 :(得分:1)
我建议使用timeout
并在第一个命令后使用&&
将命令拆分为一行。
&&
的原因是,如果上一个命令成功完成,脚本只能继续下一个项目。 timeout /t 600
等待10分钟后再继续下一个命令。
start "" /w /b "C:\Program Files\Mozilla Firefox\firefox.exe" imacros://run/?m="#Test_Macro.iim" && timeout /t 600 & @py %~dp0\SomePythonProgram.py %* & timeout /t 600
如果您想继续使用该脚本,无论Firefox是否成功启动,您只需使用一个&
。
要详细了解cmd命令中提供的开关,您只需打开cmd.exe
窗口并输入help
这将为您提供一长串可用命令,要了解有关每个命令的更多信息,只需输入命令名称后跟切换/?
我们可以使用start
和timeout
作为帮助开关的一个例子:
start /?
timeout /?