pretty code

2017年12月11日 星期一

Windows 工作排程器 command-line

雖然我們可以用 GUI 界面去設定工作排程
但這樣的方式不太容易自動化

幸好,Windows  有一個指令 schtasks
我們可以利用它來自動化建立排程

Examples:
    SCHTASKS
    SCHTASKS /?
    SCHTASKS /Run /?
    SCHTASKS /End /?
    SCHTASKS /Create /?
    SCHTASKS /Delete /?
    SCHTASKS /Query  /?
    SCHTASKS /Change /?
    SCHTASKS /ShowSid /?


不過如果要執行的是批次檔,常會遇到工作路徑不對的問題
這時候我們有 2 種解決方式

1. 照 help 說明,傳參數進去,可惜我不管如何排列組合,總是不成功

    ==> 檔案路徑中的空白可使用兩組引號,一組
        用於 CMD.EXE,另一組用於 SchTasks.exe。用於 CMD 的外部引號
        必須是雙引號; 內部引號則可以是單引號或
        逸出雙引號:
        SCHTASKS /Create
           /tr "'c:\program files\internet explorer\iexplorer.exe'
           \"c:\log data\today.xml\"" ...


2. 利用內建變數,切換磁碟機與資料夾路徑

@echo off

%~d0
cd %~dp0


搞定收工,方法 1 有空再來看怎麼回事?

沒有留言: