
答案1
我找到了一個解決方法:讓您的任務啟動.bat
腳本,如果發現電腦沒有睡眠,它將啟動命令。我使用的腳本是:
@echo off
for /f "delims=" %%t in ('time /t') do if "%%t"=="%1" %~2
這個腳本採用兩個參數:第一個是要呼叫命令的時間,第二個是命令本身,用引號引起來,例如script.bat 21:40 "echo x"
。
解釋
與 Bash 不同,在 Batch 中不可能將命令輸出直接儲存在變數中,但可以逐行迭代其輸出。這就是我的第二行的作用。因為time /t
的輸出
是單行,所以只有一次迭代,其中如果腳本在您希望調用時被調用,則腳本將啟動命令(作為第二個參數傳遞);當腳本延遲執行時,將不會滿足此條件。
我使用%~2
而不是%2
,因為%~2
丟棄命令周圍的引號,
以便傳遞"echo x"
將echo
使用參數執行x
,列印x
,
而不是調用echo x
沒有參數的程式。
缺點
按需啟動任務不會執行任何操作,您最好取消選取該字段允許任務按需運行在裡面設定選項卡,不要對此感到困惑,
修改任務的執行時間需要修改參數以保持任務正常運行,
time /t
的輸出取決於區域設定。
答案2
要在計算機空閒時運行計劃任務,請引發“等待空閒:“也許還有復選標記”如果計算機不再空閒則停止」。
- 右鍵單擊要在電腦空閒時執行的任務,然後按一下「屬性」。
- 在「條件」標籤上的「空閒時間」下,勾選「僅在電腦空閒時間至少達到時才啟動任務」複選框。
- 輸入任務運行之前計算機必須空閒的時間長度(以分鐘為單位)。
注意:您也可以透過勾選「如果電腦不再空閒則停止任務」複選框來指定在電腦正在使用時應停止任何任務。
要了解空閒時間,請遵循以下步驟關聯...
答案3
由於您讓電腦處於睡眠/休眠狀態,因此從技術上講,您仍然「登入」(剛離開)。因此,作為替代方案,您可以在“條件”中將任務設定為“喚醒電腦以運行此任務”,並且它將始終在早上 6 點運行。 (除非您的意思是任務運行時您需要位於控制台)