如何 "pause" 批处理脚本直到程序关闭?
How to "pause" a batch script until a program is closed?
我有一个看似微不足道的问题,但想不通。我正在编写一个批处理脚本,它使用特定的 URL 打开 Firefox(有效),然后执行更多操作(在单独执行时也有效)。但是,如果我将这两个命令放在一个批处理脚本中,它们就会连续执行。 不过我需要脚本等待 Firefox 关闭。这可能吗?
这是我拥有的:
echo step one
start /wait "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
echo step two
我只想在关闭 Firefox 后看到 "step two"。 I found this thread which seems very similar。但是添加 /wait
似乎没有帮助。而且我不太清楚如何根据我的需要调整公认的解决方案。
如有任何帮助,我们将不胜感激!
编辑:这就是我在链接到的线程中调整脚本的方式,但它产生相同的结果:
echo step one
start /wait "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
:LOOP
PSLIST firefox >nul 2>&1
IF ERRORLEVEL 1 (
GOTO CONTINUE
) ELSE (
ECHO Firefox is still running
SLEEP 5
GOTO LOOP
)
:CONTINUE
echo step two
但这仍然会产生相同的行为。 :s
试试这个:
echo step one
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
:s1
for /f "tokens=*" %%a in (`tasklist /FI "IMAGENAME eq firefox.exe" /FI "STATUS eq running"`) do (if "%%~a" EQU "INFO: No tasks are running which match the specified criteria." goto s2)
goto s1
:s2
echo step two
哪个应该有效
天哪!我刚刚解决了我自己的问题。就这么简单:
echo step one
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
echo step two
我现在去角落里哭...
我有一个看似微不足道的问题,但想不通。我正在编写一个批处理脚本,它使用特定的 URL 打开 Firefox(有效),然后执行更多操作(在单独执行时也有效)。但是,如果我将这两个命令放在一个批处理脚本中,它们就会连续执行。 不过我需要脚本等待 Firefox 关闭。这可能吗?
这是我拥有的:
echo step one
start /wait "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
echo step two
我只想在关闭 Firefox 后看到 "step two"。 I found this thread which seems very similar。但是添加 /wait
似乎没有帮助。而且我不太清楚如何根据我的需要调整公认的解决方案。
如有任何帮助,我们将不胜感激!
编辑:这就是我在链接到的线程中调整脚本的方式,但它产生相同的结果:
echo step one
start /wait "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
:LOOP
PSLIST firefox >nul 2>&1
IF ERRORLEVEL 1 (
GOTO CONTINUE
) ELSE (
ECHO Firefox is still running
SLEEP 5
GOTO LOOP
)
:CONTINUE
echo step two
但这仍然会产生相同的行为。 :s
试试这个:
echo step one
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
:s1
for /f "tokens=*" %%a in (`tasklist /FI "IMAGENAME eq firefox.exe" /FI "STATUS eq running"`) do (if "%%~a" EQU "INFO: No tasks are running which match the specified criteria." goto s2)
goto s1
:s2
echo step two
哪个应该有效
天哪!我刚刚解决了我自己的问题。就这么简单:
echo step one
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
echo step two
我现在去角落里哭...