现在我有一个程序,正常情况下能在1分钟之内运行完毕,但是如果给的参数不合适会进入死循环。怎样用批处理运行该程序,并判断如果该程序在一分钟时还在运行,就强制关闭该程序,而正常运行时让其正常关闭即可。
不清楚你的实际文件/情况,仅以问题中的说明为据;复制粘贴到记事本,另存为xx.bat,编码选ANSI
@echo off
rem 运行指定exe程序并检测运行时长是否超时以结束exe进程
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set "file=D:\xx\yy\zz.exe"
set overtime=60
if not exist "%file%" (echo;"%file%" not found&pause&exit)
for /f "delims=" %%a in ("%file%") do set "exename=%%~nxa"
>"%tmp%\v.v" echo;WSH.Sleep CLng(WSH.Arguments(0))*1000:WSH.Quit
start "" "%file%"
cscript -nologo -e:vbscript "%tmp%\v.v" "%overtime%"
taskkill /f /im "%exename%"
echo;%#% +%$%%$%/%@% %z%
pause
exit
@echo off
rem 运行指定exe程序并检测运行时长是否超时以结束exe进程
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set "file=D:\xx\yy\zz.exe"
set overtime=60
if not exist "%file%" (echo;"%file%" not found&pause&exit)
for /f "delims=" %%a in ("%file%") do set "exename=%%~nxa"
>"%tmp%\v.v" echo;WSH.Sleep CLng(WSH.Arguments(0))*1000:WSH.Quit
start "" "%file%"
cscript -nologo -e:vbscript "%tmp%\v.v" "%overtime%"
taskkill /f /im "%exename%"
echo;%#% +%$%%$%/%@% %z%
pause
exit
温馨提示:答案为网友推荐,仅供参考