2012-06-27 546 views
1

我有一個調用程序的批處理文件,但我想停止小時h 後,該程序例如我的批處理都會有這樣的代碼批處理文件:停止進程

@echo off 
........ 
....... 
............ 
call myprogram.exe 

是有辦法h小時後停止myprogram.exe?

回答

3
REM delay for 36000 seconds (10 hours) 
FOR /l %%a in (36000,-1,1) do (Echo closing in %%as&ping -n 2 -w 1 127.0.0.1>NUL) 
REM delete the program using it's PID 
FOR /f "tokens=2" %a in ('tasklist ^| find "notepad.exe"') do tskill %a 

使用ping意味着它在XP,Vista和Windows 7 (和,我會假設運8)

+0

這不會工作,例如,如果我打電話myprogram.exe它不會執行這個之後的其他命令,直到myprogram.exe停止 – Leo92

+1

使用'開始myprogram.exe' - 這將繼續執行程序啓動後的批處理文件。你實際上必須指定'/ W'或'/ WAIT'來讓它暫停,直到程序結束 – SeanC

+0

現在謝謝你的意思,乾杯 – Leo92

0

嘗試使用批處理文件taskkill

taskkill /IM myprogram.exe 

至於它已經運行小時h後停止程序,我不知道如何來調用。如果你有特定的時間想要停止它,你可以使用像Windows計劃任務一樣簡單的事情。

否則,您可以嘗試使用像FireDaemon這樣的服務管理應用程序將myprogram.exe設置爲Windows服務,並將其安排在h小時後關閉。不幸的是,FireDaemon不是免費的,但它肯定會勝任這項任務。

1

這將是容易得多,假設你使用Vista或以上

start myprogram.exe 
timeout /t 3600 
taskkill /im myprogram.exe /f 

只需用您的時間延遲(以秒爲單位)替換3600即可。