2011-07-22 70 views
3

我需要知道任務是否成功運行,這樣我才能在應用程序日誌中創建一個事件。有沒有辦法在代碼中得到這個?我試過如下:如何獲取批處理腳本的任務計劃程序上次運行結果退出代碼?

echo ErrorLevel of "c:\windows\system32\tasks\my task" = %ErrorLevel% 

,但我得到0每一次,就算我阻止它過早(0x41306),或在任務仍在運行(應該是0x41301)。有沒有人有任何想法?謝謝。

我找到了解決方法。我得到了實際運行的批處理腳本的退出代碼,而不是獲取任務的退出代碼,如果它不是0,那麼我會發出錯誤應用程序事件,否則它是成功的應用程序事件。

回答

0

下面的批處理文件接受任務名稱的參數,例如,如果您命名bat文件「getresult.bat」,您將調用「getresult GoogleUpdateTaskMachineCore」(如果名稱中包含空格,請在其周圍加引號)。

這是非常詳細的,所以讓我知道如果您需要幫助,以適應您的需求。

測試並在Windows 8中工作,我相信它也適用於XP/Vista/7。

@ECHO OFF 

IF %1=="" GOTO EXITNOINPUT 

ECHO Checking Tasks for "%1"... 

FOR /F "tokens=2delims=:" %%I IN ('schtasks /tn %1 /fo LIST /v ^| FIND "Last Result"') DO (
    SET result=%%I 
) 

IF NOT DEFINED result GOTO EXITNOTFOUND 

ECHO Done... 
ECHO The Last Result Was: %result% 

GOTO EXITNORMAL 

:EXITNOTFOUND 
echo The scheduled task was not found. 
GOTO EXITNORMAL 


:EXITNOINPUT 
echo You must provide a query. (getresult servicename) 
GOTO EXITNORMAL 

:EXITNORMAL 
相關問題