AT 是 Windows 內建的命令列排程工具(Windows 10/11 仍保留相容),適用於簡單的一次性或週期性任務排程。雖然現代環境建議使用 schtasks 或工作排程器 GUI,但 AT 指令在舊版相容、腳本快速部署、Server Core 環境仍具實用價值。
語法總覽
AT [\\電腦名] [ [識別碼] [/DELETE] | /DELETE [/YES] ]
AT [\\電腦名] 時間 [/INTERACTIVE] [ /EVERY:日期[,...] | /NEXT:日期[,...] ] "命令"
參數詳細說明
| 參數 | 說明 | 範例 |
\\電腦名 | 指定遠端電腦(需 RPC 權限),省略為本機 | \\SRV01 |
識別碼 | 排程任務唯一 ID(由系統自動指派) | 1, 5 |
/DELETE | 刪除指定 ID 或所有任務(搭配 /YES 跳過確認) | AT 1 /DELETE, AT /DELETE /YES |
/YES | 刪除所有任務時不提示確認 | AT /DELETE /YES |
時間 | 執行時間(24小時制 HH:MM) | 14:30, 03:00 |
/INTERACTIVE | 允許任務與當前登入用戶桌面互動(需 Session 0 隔離相容) | AT 14:30 /INTERACTIVE "notepad.exe" |
/EVERY:日期 | 週期性執行:週幾(M,T,W,Th,F,S,Su)或日期(1-31),預設每月今天 | /EVERY:M,W,F, /EVERY:1,15 |
/NEXT:日期 | 下一次指定日期執行(下個週一、下個月 1 號) | /NEXT:M, /NEXT:15 |
"命令" | 要執行的指令/批次檔/程式(含路徑與參數),需雙引號括住 | "C:\Scripts\backup.bat" |
實戰範例
範例 1:每日 02:00 執行備份腳本
AT 02:00 /EVERY:M,T,W,Th,F,S,Su "C:\Scripts\daily_backup.bat >> C:\Logs\backup_%DATE%.log 2>&1"
範例 2:下週一 03:00 執行系統更新腳本(互動模式)
AT 03:00 /NEXT:M /INTERACTIVE "C:\Windows\System32\wuauclt.exe /detectnow"
範例 3:每月 1 號 04:00 清理暫存檔
AT 04:00 /EVERY:1 "cmd /c del /q /f /s C:\Temp\* & for /d %i in (C:\Temp\*) do rd /s /q \"%i\""
範例 4:查看/刪除現有任務
AT # 列出本機所有排程任務
AT \\SRV01 # 列出遠端伺服器任務
AT 3 /DELETE # 刪除 ID=3 的任務
AT /DELETE /YES # 刪除所有任務(無提示)
關鍵限制與避坑指南
- 服務依賴:需啟用 Task Scheduler (Schedule) 服務(
services.msc → 啟動類型:自動)。
- 權限模型:AT 建立的任務以 System 權限 執行,無法存取網路磁碟機(需在批次檔內
net use 掛載)。
- Session 0 隔離:Vista/Win7 以降,
/INTERACTIVE 無法正常顯示 GUI 於用戶桌面,僅適用於主控台應用。
- 時間格式:嚴格 24 小時制,無 AM/PM。
- 命令長度:單行 ≤ 260 字元,複雜邏輯請寫入 .bat/.cmd/.ps1 再呼叫。
- 不支援:秒級排程、隨機延遲、事件觸發、條件判斷(網路/電源/閒置),請改用
schtasks。
現代替代方案:schtasks 對照表
| AT 功能 | schtasks 等效語法 |
| 每日 02:00 | schtasks /create /tn "DailyBackup" /tr "C:\Scripts\backup.bat" /sc daily /st 02:00 /ru SYSTEM |
| 每週一三五 | /sc weekly /d MON,WED,FRI |
| 每月 1 號 | /sc monthly /d 1 |
| 刪除任務 | schtasks /delete /tn "DailyBackup" /f |
| 查詢任務 | schtasks /query /fo LIST /v |