我有一个批处理文件,用于检查Internet连接,如果连接Internet已建立,请使用宏启动Firefox,然后继续暂停。
这段时间内,fiefox使用宏,在Firefox完成后,工作自动关闭。
现在,我需要继续在firefox完成工作之后打开的批处理代码,该代码将被关闭,但批处理文件会暂停。
是否存在一种解决方案,可以继续打开无需手动干预的批处理文件?
使用firefox,我可以运行另一个批处理文件或软件(使用一些JavaScript),但是我需要继续执行打开的批处理文件,并且找不到任何解决方案来继续该批处理文件。
这是我的批处理文件的代码(ping检查连接,声音提醒我,使用宏启动Firefox,暂停批处理文件)
PING -n 5 www.wikipedia.org|FIND /I "TTL">NUL
IF NOT ERRORLEVEL 1 rundll32 user32.dll,MessageBeep 0x00000010L
IF NOT ERRORLEVEL 1 start "" "D:\Programmi Installati\Firefox\FirefoxPortable.exe" imacros://run/?m=work.iim
IF NOT ERRORLEVEL 1 PAUSE
我不知道Firefox完成这项工作需要多长时间,所以我使用了pause命令。
答案 0 :(得分:1)
批量使用非常有限。但是,您有两个选择。
第一个是您可以使用timeout
让批处理脚本等待x倍的时间才能继续。问题是,正如您所说,您不知道宏处理可能需要多长时间。
PING -n 5 www.wikipedia.org|FIND /I "TTL">NUL
IF NOT "%ERRORLEVEL%"=="1" (
rundll32 user32.dll,MessageBeep 0x00000010L
start "" "D:\Programmi Installati\Firefox\FirefoxPortable.exe" imacros://run/?m=work.iim
TIMEOUT /T 60 /NOBREAK
)
第二个选项是(如果可能)在完成时让imacros关闭浏览器的所有实例。您可以让批处理脚本在继续之前寻找终止过程。请记住,TIMEOUT /T 5 /NOBREAK >NUL
的原因是让浏览器几秒钟才能真正打开。请将myapp.exe
的两个实例都更改为您的Firefox进程名称。
PING -n 5 www.wikipedia.org|FIND /I "TTL">NUL
IF NOT "%ERRORLEVEL%"=="1" (
rundll32 user32.dll,MessageBeep 0x00000010L
start "" "D:\Programmi Installati\Firefox\FirefoxPortable.exe" imacros://run/?m=work.iim
TIMEOUT /T 5 /NOBREAK >NUL
goto Search
)
:Search
tasklist /FI "IMAGENAME eq myapp.exe" 2>NUL | find /I /N "myapp.exe">NUL
if "%ERRORLEVEL%"=="0" (
TIMEOUT /T 5 /NOBREAK >NUL
goto Search
)
if "%ERRORLEVEL%"=="1" (goto Continue)
:Continue
Echo Macro has finished! Continue code here.