[Windows好用工具] 預約關機批次檔

最近因為下載的關係,經常有機會需要預約關機。以前很方便的 at 指令在Windows裡已經消失了,難道只能用「排程」程式以圖形介面來操作嗎?試了一下,用批次檔來解決這個狀況。

關機指令

shutdown.exe是關機指令,我們使用到下列兩個選項:

  • /s: 將電腦關機 (Shutdown)
  • /f: 強制 (Force)

排程指令

Windows裡沒有at.exe,必須使用schtasks.exe,使用的選項如下:

  • /Create: 建立排程
  • /F: 強制建立 (Force)
  • /TN: 任務名稱 (TaskName)
  • /ST: 指定開始執行工作的時間 (Start Time),格式是 HH:MM
  • /SC: 指定排程執行頻率。效的排程類型: MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE、ONEVENT
  • /TR: 指定於排程時間執行的程式的路徑及檔案名稱 (Task Run)

預約關機批次檔

使用批次檔合併使用 schtasks.exe與shutdown.exe。若使用兩個參數表示在特定日期的特定時間關機,通常用於凌晨 0 時前預約隔天關機時間,只有一個參數則表示當天特定時間關機。

▼ 使用範例

pwroff.bat   [關機日期] [關機時間]

rem 範例:
pwroff 2016-06-26 03:00
pwroff 05:30

▼ 批次檔內容

@echo off
if "%1"=="" goto DEFAULT
if "%2"=="" goto SET_TIME
goto RUN_DAILY
:SET_TIME
  set _TIME1=%1
  schtasks /Create /F /TN "shutdown-once" /ST %_TIME1% /SC ONCE /TR "c:\windows\system32\shutdown.exe /s /f"
  goto END
:DEFAULT
  set _TIME1=04:30
  set _TIME2=04:40
  schtasks /Create /F /TN "shutdown-once" /ST %_TIME1% /SC ONCE /TR "c:\windows\system32\shutdown.exe /s /f"
  goto END
:RUN_DAILY
  set _DATE=%1
  set _TIME1=%2
  set _TIME2=07:00
  schtasks /Create /F /TN "shutdown-once" /SD %_DATE% /ED %_DATE% /ST %_TIME1% /ET %_TIME2% /SC DAILY /TR "c:\windows\system32\shutdown.exe /s /f"
:END

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *