Share via


時間

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012

排程命令和程式於指定的時間和日期在電腦上執行。 您只能在執行排程服務時使用 at 命令。 在沒有參數的情況下使用,at 會列出排程的命令。 您必須是本機管理員群組的成員才能執行此命令。

語法

at [\computername] [[id] [/delete] | /delete [/yes]]
at [\computername] <time> [/interactive] [/every:date[,...] | /next:date[,...]] <command>

參數

參數 描述
\<computername\> 指定遠端電腦。 如果省略此參數,at 會在本機電腦上為命令和程式排程。
<id> 指定指派給已排定的命令的識別碼。
/delete 取消已排定的命令。 如果省略 ID,電腦上所有已排定的命令都會取消。
/yes 當您刪除已排定事件時,對來自系統的所有查回答是。
<time> 指定要執行命令的時間。 時間以 24 小時標記法 Hours:Minutes 表示 (即 00:00 (午夜) 到 23:59)。
互動式 允許命令Command 執行時登入的使用者桌面互動。
每一位: 在每個當周或當月指定日執行命令 (例如,每個星期四,或每個月的第三天)。
<date> 指定要執行命令的日期。 您可以指定當週一或多日 (也就是類型 MTWThFSSu) 或當月一或多日 (也就是類型 1 到 31)。 以逗號分隔多個日期項目。 如果省略 日期,則 at 會使用當月的目前日期。
next: 在當日下一次出現時執行命令 (例如下星期四)。
<command> 指定您想要執行的 Windows 命令、程式 (也就是 .exe 或 .com 檔案),或批次處理程式 (也就是 .bat 或 .cmd 檔案)。 當命令需要以路徑做為引數時,請使用絕對路徑 (也就是以磁碟機代號開頭的整個路徑)。 如果命令位於遠端電腦上,請指定伺服器和通用命名慣例 (UNC) 表示法,而不是遠端磁碟機代號。
/? 在命令提示字元顯示說明。

備註

  • 執行命令之前,此命令不會自動載入 cmd.exe。 如果未執行可執行檔 (.exe),則必須在命令開頭明確載入 cmd.exe,如下所示:

    cmd /c dir > c:\test.out
    
  • 如果使用此命令而不使用命令列選項,排定的工作會出現在格式化如下的資料表中:

    Status  ID   Day        time        Command Line
    OK      1    Each F     4:30 PM     net send group leads status due
    OK      2    Each M     12:00 AM    chkstor > check.file
    OK      3    Each F     11:59 PM    backup2.bat
    
  • 如果包含具有此命令的識別碼 (ID),則只有單一項目的資訊會以類似下列格式顯示:

    Task ID: 1
    Status: OK
    Schedule: Each  F
    Time of Day: 4:30 PM
    Command: net send group leads status due
    
  • 為命令排程之後,特別是具有命令列選項的命令,請在 沒有命令列選項的情況下輸入 at,檢查命令語法是否正確。 如果命令列資料行中的資訊錯誤,請刪除命令並重新輸入。 如果仍然不正確,請使用較少的命令列選項重新輸入命令。

  • 以背景處理序形式執行 at 來排定命令。 輸出未顯示在電腦畫面上。 若要將輸出重新導向至檔案,請使用重新導向符號 >。 如果您將輸出重新導向至檔案,則必須在重新導向符號之前使用逸出符號^,無論是在命令列或在批次處理檔案中使用 at。 例如,若要將輸出重新導向至 output.txt,請輸入:

    at 14:45 c:\test.bat ^>c:\output.txt
    

    執行命令的目前目錄是 systemroot 資料夾。

  • 如果您在排程命令執行後變更系統時間,請在沒有命令列選項情況下輸入 at 以修訂的系統時間同步處理 at 排程器。

  • 已排定的命令會儲存在登錄中。 因此,如果重新啟動排程服務,就不會遺失排定的工作。

  • 請勿針對存取網路的排程工作使用重新導向的磁碟機。 如果排程工作執行時登入不同的使用者,排程服務可能無法存取重新導向的磁碟機,或者重新導向的磁碟機可能不存在。 請改用排程工作的 UNC 路徑。 例如:

    at 1:00pm my_backup \\server\share
    

    請勿使用下列語法,其中 x: 是使用者所建立的連線:

    at 1:00pm my_backup x:
    

    如果您排定使用連線到共用目錄的磁碟機代號的 at 命令,請包含 at 命令以在使用完磁碟機時中斷與磁碟機的連線。 如果磁碟機未中斷連線,命令提示字元處將無法使用指派的磁碟機代號。

  • 根據預設,使用此命令排程的工作會在 72 小時後停止。 您可以修改登錄以變更此預設值。

    若要修改登錄

    警告

    不正確地編輯登錄可能會對系統造成嚴重的損害。 變更登錄之前,您應該先備份電腦所有的重要資料。

    1. 啟動登錄編輯程式 (regedit.exe)。

    2. 找出下列登錄機碼並按一下該機碼:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule

    3. 在 [編輯] 功能表上,按一下 [新增值],然後新增下列登錄值:

      • 值名稱。 atTaskMaxHours

      • 資料類型。 reg_DWOrd

      • Radix。 Decimal

      • 值資料: 0。 [值資料] 欄位中的 0 值,表示沒有限制且不會停止。 值 1 到 99 表示時數。

  • 您可以使用 [排定的工作] 資料夾來檢視或修改使用此命令所建立之工作的設定。 當您使用此命令為工作排程時,工作會列在 [排定的工作] 資料夾中,名稱如下:at3478。 不過,如果透過 [排定的工作] 資料夾修改工作,則會升級為一般排定的工作。 該工作不再顯示 at 命令,而且帳戶設定不再套用於該工作。 您必須明確輸入工作的使用者帳戶和密碼。

範例

若要在 Marketing 伺服器上顯示排定的命令清單,請輸入:

at \\marketing

若要深入了解 Corp 伺服器上識別碼為 3 的命令,請輸入:

at \\corp 3

若要排定 net share 命令以在上午 8:00 在 Corp 伺服器上執行,並將清單重新導向至 Maintenance 伺服器、在 Reports 共用目錄中以及 Corp.txt 檔案,請輸入:

at \\corp 08:00 cmd /c net share reports=d:\marketing\reports >> \\maintenance\reports\corp.txt

若要每隔五天午夜將 Marketing 伺服器的硬碟備份到磁帶機,請建立名為 Archive.cmd 的批次程式,其中包含備份命令,然後排定批次程式執行,請輸入:

at \\marketing 00:00 /every:5,10,15,20,25,30 archive

若要取消目前伺服器上排定的所有命令,請清除 at 排程資訊,如下所示:

at /delete

若要執行不是可執行檔 (.exe) 的命令,請在命令前面加上 cmd /c 以載入 cmd.exe,如下所示:

cmd /c dir > c:\test.out