如何在程序关闭之前“暂停”批处理脚本?

时间:2015-04-22 17:27:39

标签: windows batch-file command-line

我有一个看似微不足道的问题,但无法弄清楚。我正在编写一个批处理脚本,用一个特定的URL(可以工作)打开Firefox,然后做更多的东西(当单独执行时也可以工作)。但是,如果我将两个命令放在一个批处理脚本中,它们会背靠背执行。 我需要脚本等到Firefox关闭。这可能吗?

这就是我所拥有的:

echo step one
start /wait "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
echo step two

我想在关闭Firefox后才看到“第二步”。 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

但是仍然会产生相同的行为。 :■

2 个答案:

答案 0 :(得分:1)

试试这个:

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

哪个应该有用

答案 1 :(得分:-1)

天啊!我刚解决了自己的问题。就这么简单:

echo step one
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://www.google.com
echo step two

我现在就在角落里哭泣......