2012-05-04 54 views
2

是否可以使用schtasks創建任務,以便此任務在特定時間運行,具體取決於用戶提供的配置?是否可以讓schtasks在特定時間運行?

理想情況下,我想達到的是 - 用戶輸入他/她希望執行任務的具體時間(例如生成報告並通過電子郵件發送)。這個特定時間的字符串是用逗號分隔的,例如, 08:00, 11:20, 14:00, 17:5909:15, 10:30, 11:45, 13:00

目前我所知道的是,schtasks /create允許您指定一個使用/st <hh:mm>的開始時間,但這只是一個特定的時間。

回答

0

您可以設置任務的開始時間並設置它重複的時間間隔,但這是針對單個任務的。

如果你想創建一個運行每3個小時,開始09:00一個任務,你可以做這樣的事情:
Schtasks /Create /TN example /TR C:\example\report.bat /SC DAILY /ST 09:00 /DU 300 /RI 180
請注意,我設置/DU:這是SchTasks.exe會的工期要求超過運行間隔。

如果您想要創建多個任務以便在不同的時間運行,那麼我要麼一次添加一個任務,要麼將它們分別放在文件的一行中,然後通過批處理文件(這實際上是相同)。一旦進入分隔列表就會變得雜亂無章;我還沒有找到從它們中提取數據的好方法。這當然是可能的,但感覺像人們告訴你的那種事是「不好的做法」。
要連續添加多個任務,我會創建一個看起來是這樣的一個批處理文件:

set i=1 

:top 

set /P input=if you want to create a scheduled task, enter the time you want in HH:MM format. otherwise, type "q" : 
if (%input%) EQU (q) exit /B 0 

Schtasks /Create /TN %username%\%i% /TR C:\example\report.bat /SC DAILY /ST %input% /RU %username% 

set /A i+=1 

goto top 

創建的任務是從1開始計數到無窮大(只要用戶進入)號並在與運行腳本的人員的用戶名相同的文件夾下提交。從技術上講,你訪問他們的名字是「%username%\ 1」,「%username%\ 2」。這是爲了讓多個用戶可以使用相同的腳本來完成多個任務,而不會覆蓋其他任務。
腳本可以隨時通過輸入「q」自行停止。
可能的話,您可以在每一行中輸入一次文件到腳本中,並在末尾輸入q,然後它會遍歷整個列表並退出。

相關問題