at 是 Windows 內建的命令列排程工具,可在指定時間一次性或週期性執行指令、程式、批次檔。雖然圖形化「工作排程器」功能更豐富,但 at 適合腳本部署、遠端管理、無訊息安裝等自動化場景。
必須啟用 「工作排程器」服務 (Schedule):
net start schedule
sc config schedule start= auto
at [\\電腦名] [[ID] [/delete] | /delete [/yes]]
at [\\電腦名] 時間 [/interactive] [/every:日期[,...] | /next:日期[,...]] 指令
| 參數 | 功能 |
|---|---|
\\電腦名 | 遠端排程 (需管理員權限、RPC 通訊) |
ID | 工作識別碼 (建立時自動指派),用於刪除特定工作 |
/delete | 刪除工作;省略 ID 則刪除所有工作 |
/yes | 刪除時不提示確認 |
時間 | 24小時制 HH:MM (00:00-23:59) |
/interactive | 允許工作與登入使用者桌面互動 (顯示視窗、提示) |
/every:日期 | 週期性執行:星期 (M,T,W,Th,F,S,Su) 或 月份日期 (1-31),逗號分隔 |
/next:日期 | 下一次出現的指定日期執行 (單次) |
指令 | 要執行的程式、批次檔、指令;需絕對路徑或 UNC 路徑 |
at 02:30 /next:Tomorrow cmd /c "C:\Scripts\backup.bat >> C:\Logs\backup.log"
at 23:00 /every:M,W,F cmd /c "cleanmgr /sagerun:1"
at 03:00 /every:1 "C:\Program Files\AntiVirus\scan.exe" /full /auto
at \\SERVER01 22:00 shutdown /s /f /t 60 /c "排程維護關機"
at 10:00 /interactive notepad.exe C:\Reminder.txt
at # 列出所有工作
at 5 /delete # 刪除 ID=5 的工作
at /delete /yes # 刪除所有工作,不提示
cmd /c: at 12:00 cmd /c dir > C:\log.txt\\Server\Share\script.bat,不可用對應磁碟機代號。at 建立的工作以 System 帳號 執行,無網路存取權;需存取網路資源請用 schtasks /ru 指定帳號。Register-ScheduledTask、New-ScheduledTaskTrigger 功能完整、物件導向、支援遠端管理。| 工具 | 優點 | 缺點 | 建議場景 |
|---|---|---|---|
| at | 簡單、無參數即列表、適合快速單次/週期任務 | 功能少、System 權限、無網路存取、Vista+ /interactive 失效 | 舊腳本相容、快速測試、本機簡單排程 |
| schtasks | 完整功能、指定執行身分、事件觸發、XML 匯入匯出 | 參數複雜 | 生產環境部署、企業自動化、需網路存取的任務 |
| 工作排程器 | 圖形化、完整條件/動作/設定、歷程記錄 | 不適合無訊息部署 | 手動建立、複雜邏輯、疑難排查 |