在批处理文件中运行带延迟的多程序

时间:2018-03-25 06:00:03

标签: batch-file

我想运行程序,然后在30秒后关闭该程序。

我写了两个批处理文件,

第一个批处理文件正在运行程序。该程序是Hotspot Shield。

鳕鱼是

@ECHO off
"C:\Program Files (x86)\Hotspot Shield\bin\hsscp.exe"
timeout /t 30
"E:\1.bat"
Exit

程序运行正常,但30秒后第二批文件无法运行。

第二批文件的代码是

@ECHO off
cd "C:\Program Files (x86)\Hotspot Shield\bin"
Taskkill /IM "hsscp.exe" /F
Exit

当我添加此命令时

timeout /t 30

在第一批文件中的此命令之前

"C:\Program Files (x86)\Hotspot Shield\bin\hsscp.exe"

批处理文件倒计时。但之后不计算在内。

问题是什么?

我只想运行热点盾牌并在30秒后关闭。 窗户是10。

感谢

2 个答案:

答案 0 :(得分:1)

@ECHO off
START "" "C:\Program Files (x86)\Hotspot Shield\bin\hsscp.exe"
timeout /t 30 >NUL
Taskkill /IM "hsscp.exe" /F
Exit

...hsscp.exe可执行文件将在新进程中启动。由于>nul并且taskkill的当前目录不相关,30秒超时将变为静默。

start命令中的第一个双引号参数是窗口标题,因此start命令中的额外引号对提供了空标题。

答案 1 :(得分:0)

我不确定它是否仍然存在,但Hotspot Shield可执行文件曾用于接受-quit参数。如果是这种情况那么肯定是比用TaskKill强行关闭它更好的选择。

这可能值得一试:

@Echo Off
CD /D "%ProgramFiles(x86)%\Hotspot Shield\bin" 2>Nul || Exit /B
Start hsscp
Timeout 30 /NoBreak > Nul
Start hsscp -quit