2012-07-26 259 views
9

這是我之前問題(link)的一種後續操作。批處理文件完成後,批處理文件在「任務計劃程序」下運行,並繼續運行

要進行測試我做了這個簡單的批處理文件,以確保任務計劃程序被正確執行批處理文件:

cd "C:\Users\user\Desktop" 
echo. 2>test.txt 

所以,桌面上創建test.txt文件後,該批處理文件應該結束,但繼續運行:

Running Tasks List

有沒有一種方法,無論是在批處理文件或在任務的屬性設置,年底前確保CMD進程退出?

謝謝!

回答

0

我找到的解決方案是在批處理文件的最後添加這一行:

現在後
TASKKILL /F /IM cmd.exe 

批處理文件任務運行和完成,它不再是在所有正在運行的任務列表,狀態會返回到「準備好」狀態,而不是停留在「正在運行」狀態。

2

運行TASKKILL /F /IM cmd.exe將終止所有cmd.exe進程,無論它是否是產生此批處理文件的進程。這可能不是理想的行爲。 :-)

從你最後一個問題來看,我猜你還在用cmd.exe /k運行你的任務,這將使窗口保持無限期打開狀態。對於無人值守的任務,cmd.exe /c是更好的選擇。當批處理文件結束時,該過程應該結束。

+0

謝謝你的投入,我將之納入未來的批處理文件(如有必要)。我最終編寫了一個備份程序來處理所有事情,而不是現有備份批處理文件的包裝。 – Anders 2013-02-04 02:04:25

6

您可以添加「退出」到腳本的最後一行

cd "C:\Users\user\Desktop" 
echo. 2>test.txt 
exit 
3

同樣在這裏在Windows 7 把所有批處理文件的目錄中誰運行任務的用戶的用戶特定的路徑

運行PROGRAMM = 「cmd.exe的」(無路徑)

你的演員,礦井,其中=「/C 」C:\用戶[用戶名] \任何\ your_batchfile.bat「 >> log.txt的「

>> log.txt的 「這樣我可以看到該批次的輸出...

在開始=」 C:\用戶[用戶名] \任何

我還檢查了盒子

「最高privilges運行」所有的事情以後工作得很好:)

12

我遇到了相同問題。然而,當我讀到Trevor778在這篇文章中寫到的內容時,我感到非常愚蠢:

我有同樣的問題 - 任務工作但狀態一直顯示正在運行。一個簡單的事情就是點擊左側列中的任務計劃程序庫。點擊操作/刷新。普雷斯托。狀態更改爲就緒。這就是這一切,任務運行良好,只是狀態沒有更新。希望這可以幫助。

裁判:https://social.technet.microsoft.com/Forums/en-US/2f6dc29c-3b8b-45f5-a2a7-53e076acc062/task-scheduler-scheduler-status-is-being-running-always?forum=winservergen

+0

感謝您的提示!它看起來確實是在任務完成時狀態不會更新,而無需按刷新。 – 2017-04-06 08:41:31