我有一个脚本应该使用iMacros脚本启动Firefox,之后应检测Firefox崩溃的时间,如果崩溃,批量重新启动Firefox,依此类推。
但是我注意到Firefox重启了很多次,无论它是否崩溃
我想知道如何更改此代码,以便只在Firefox没有响应时重新启动。
代码:
@echo off
:loop
cls
taskkill /F /IM Firefox.exe
cls
taskkill /F /IM crashreporter.exe
ping 192.0.2.2 -n 1 -w 4000 > nul
set MOZ_NO_REMOTE=1
timeout /t 4 /nobreak
start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m=macros.iim
set MOZ_NO_REMOTE=
ping 192.0.2.2 -n 1 -w 1000000 > nul
goto loop
答案 0 :(得分:1)
在这种情况下,您需要使用支票,例如在this回答时查看。所以在你的情况下,你需要使用
@echo off
start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m=macros.iim
:loop
tasklist /nh /fi "imagename eq firefox.exe" /fi "status eq running` |find /i "firefox.exe" >nul && (
timeout 60 /NOBREAK
) || (
cls
taskkill /F /IM Firefox.exe
cls
taskkill /F /IM crashreporter.exe
timeout 4 /NOBREAK
set MOZ_NO_REMOTE=1
start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m=macros.iim
set MOZ_NO_REMOTE=
)
goto loop
使用您的代码。这应该检查firefox是否没有响应,如果不是这样,它等待60秒。如果它没有响应,它会转到你的重启代码。
答案 1 :(得分:0)
START命令采用/ WAIT参数。这意味着只要firefox正在执行,它就不会将控制权返回给您的批处理脚本。假设firefox在崩溃时停止执行(看起来你正在假设),那么只需添加/ WAIT参数就可以实现你想要的效果。