我想先从Windows批处理文件的程序。 但该方案应该有一定的超时值后停止。 例如:运行程序,60秒,60秒后停止。
在Linux下,有这个漂亮的timeout
命令做我想要的。 Windows还具有timeout
命令,但它只是暂停命令,以延迟执行。 有没有在Windows下别的东西这样做呢?
安装:Windows 7中,64位,专业
我想先从Windows批处理文件的程序。 但该方案应该有一定的超时值后停止。 例如:运行程序,60秒,60秒后停止。
在Linux下,有这个漂亮的timeout
命令做我想要的。 Windows还具有timeout
命令,但它只是暂停命令,以延迟执行。 有没有在Windows下别的东西这样做呢?
安装:Windows 7中,64位,专业
start yourprogram.exe
timeout /t 60
taskkill /im yourprogram.exe /f
巴厘岛℃具简洁,中肯的回答。 我需要的东西一点点更多的其他功能,可重复使用。 基于巴厘岛C'S例。 我想出了这个。 如果有人需要我一样。
your.bat
REM...
CALL STARTwaitKILL..bat /relative/path/your_program.exe
REM...
STARTwaitKILL.BAT
@ECHO OFF
IF[%1]==[] GOTO EOF
IF NOT EXIST %1 GOTO EOF
REM SET PRIORITY=/NORMAL
REM ADJUST PRIORITY, BELOWNORMAL LETS BATCH FILE RUN MORE SMOOTHLY
REM WITH A PROGRAM THAT CONSUMES MORE CPU. SEE ABOUT MAXWAIT BELLOW
SET PRIORITY=/BELOWNORMAL
REM SET PRIORITY=/LOW
REM 0 NORMAL WINDOW :: 1 NO WINDOW :: 2 MINIMIZED WINDOW
SET /A HIDDEN=1
REM MAXWAIT HERE IS MORE LIKE MINIMUM WAIT IN WINDOWS.
SET MAXWAIT=10
SET WAITCOUNT=0
SET ARGS=/I %PRIORITY%
IF %HIDDEN% EQU 1 SET ARGS=%ARGS% /B
IF %HIDDEN% EQU 2 SET ARGS=%ARGS% /MIN
START %ARGS% %1
:WAIT
IF %WAITCOUNT% GEQ %MAXWAIT% GOTO KILL_IT
TIMEOUT /T 1 > NUL
SET /A WAITCOUNT+=1
FOR /F "delims=" %%a IN ('TASKLIST ^| FIND /C "%~nx1"') DO IF %%a EQU 0 GOTO RUN_DONE
GOTO WAIT
:KILL_IT
TASKKILL /IM %~nx1 /F > NUL
:RUN_DONE
可以充实矿采取优先顺序,这样更多的参数,但我没有为它的需要。 应该不难添加。
不要在Windows中存在的任何命令延迟一个应用程序或设置超时的应用
超时在Windows中的延迟CMD / Batfile,仅此而已工具的执行过程。
您可以使用外部工具,我不记得任何现在,这么多的地下软件的名称,抱歉,但我记得在AutoIt的官方论坛也存在类似的命令行工具来启动一个应用程序设置超时,也许在工具的NirCmd,或ps2exec,检查他们的帮助文件,或者有人的WAIK工具包内。
这是唯一的,你可以这样做:
@Echo OFF
:: First launch the app in background mode, because some applications stops the execution of CMD.
Start /B ".\Dir\Your app.exe"
:: Then stay in background for a certain time
Timeout /T "Seconds"
:: Continue your code...
Pause&Exit
在start
+ timeout
+ taskkill
等待完全给定的时间。 因为我需要停止等待,如果过程的早期退出 ,我创建了C ++自己的解决方案。
该tuxliketimeout
程序模仿GNU超时 。 随意下载和从编译
https://github.com/cernoch/tuxliketimeout