2012-11-15 39 views
3

我有一個批處理文件,用於打開.exe程序。該計劃是fileuploader.exe使用命令行完成時關閉程序

當上傳過程使用命令行完成時,有沒有辦法關閉這個程序?

因爲程序生成一個輸出文件,我需要這個輸出用於另一個命令行操作。

我嘗試這樣做:

start fileuploader.exe filetoupload 
:loop 
taskkill /im fileuploader.exe 
goto loop 

當程序正在運行,且taskkill發送一個請求關閉該程序,它顯示了這個消息:

一個正在上傳你想出口?

循環這樣做直到上傳完成並taskkill關閉Fileuploader。但我不喜歡這個解決方案。

有一種方法可以在一定時間後執行taskkill?例如每2分鐘一次?

+0

請提供您的腳本。 – davenewza

+0

編輯第一篇文章:) – user1825932

+0

你可以嘗試'fileuploader.exe filetoupload' - 當上傳完成後,命令提示符會退出。要啓動第二個腳本,您可以使用條件執行 http://www.robvanderwoude.com/condexec.php – npocmaka

回答

0

有一種方法可以在一段時間後執行taskkill嗎? (例如,每隔 2分鐘?)

您可以使用ping命令創建延遲。用一個期望的超時值(ms)ping一次不可達地址。這個例子將在每個taskkill之前等待2分鐘。

start fileuploader.exe filetoupload 
:loop 
ping 1.1.1.1 -n 1 -w 120000 >NUL 
taskkill /im fileuploader.exe 
goto loop 
+1

好主意,我嘗試使用超時命令也:) – user1825932

0

此外,還有這種方法,它讓你在窗口的標題倒計時:

@ECHO off 
TITLE Initial title 
SET TITLETEXT=Countdown the uploader 
:: start of script 
start fileuploader.exe filetoupload 
:loop 
CALL sleepMe 120 
taskkill /im fileuploader.exe 
goto loop 
:: rest of script 
GOTO :END 
:: Function 
:sleepMe ARG 
ECHO Pausing... 
FOR /l %%a in (%~1,-1,1) do (TITLE %TITLETEXT% -- time left %%as&PING.exe -n 2 -w 1 127.0.0.1>nul) 
EXIT /B 0 
:END 
pause 
0

如果文件&圖片上傳是here,那麼它可以實現on next release,否則無需額外工具即可獲得最佳解決方案ping

在從Windows資源工具包多臺計算機,你會發現sleep.exe或PowerShell腳本已嵌入Start-Sleep

HTH