新手指南
要把公司軟體用的計劃任務用命令列批處理的方式匯入一個新的系統裡,所有通過查資料,一個可以用來匯出和匯入的指令碼。
匯出用法為:指令碼名稱+空格+export
匯入用法為:指令碼名稱+空格+import
以下為內容和注釋:
rem 以下為關閉命令列印@echo offrem 以下為清屏clsrem 以下為設定此批處理所有的環境變數只應用於當前批處理setlocal EnableDelayedExpansionrem 以下為設定變數set runasUsername=domain\administratorset runasPassword=passwordrem 以下%1是在此批處理執行時後面的第一個命令列參數(在執行的格式:指令碼名+export 就相當於跳轉到”:export“)if %1. == export. call :exportif %1. == import. call :importrem 以下為退出當前指令碼,不是退出整個批處理exit /b 0:exportrem 以下為建立一個tasks檔案夾,所有的錯誤不顯示md tasks 2>nulrem 以下為列出所有計劃任務並指定csv格式,然後找出與字串TaskName不匹配的行,輸出到一個文字檔schtasks /query /fo csv | findstr /V /c:"TaskName" > tnlist.txtrem 迴圈尋找以(,)為分隔字元列出每一行的每一項,指定%%i為第一項,用tokens=1,2指定第二項%%j和第三項%%k(也可以rem 指定%%t為第一項,那麼tokens=1,2指定第二項%%u和第三項%%v,第四項為%%W)for /F "delims=, tokens=1,2*" %%i in (tnlist.txt) do ( echo %%i echo %%j echo %%k set tn=%%irem 以下為設定fn為把tn的內容裡的\替換成# set fn=!tn:\=#! echo !tn! echo !fn!rem 以下為列出所有計劃任務並指定xml格式,輸出到目前的目錄的tasks檔案夾下的XXX.xml檔案 schtasks /query /xml /TN !tn! > tasks\!fn!.xml)rem 刪除所有windows內建的計劃任務del tasks\#Microsoft*.xmlexit /b 0rem 以下為匯入標籤,在執行的格式:指令碼名+import 將會直接跳轉到這裡開始執行:importrem 在這個目錄裡迴圈找到所有的xmlfor %%f in (tasks\*.xml) do ( rem 用call命令來調用(:importfile)標籤執行,並賦予上面尋找出來的名字為參數 call :importfile "%%f")exit /b 0:importfilerem 以下為設定filename=上面用call命令調用時賦予的第一個參數,如果是 set filename=%2則是第二個參數 set filename=%1rem 以下為設定把filename裡#字元替換為空白set taskname=%filename:#=%rem 以下為設定把filename裡tasks\字元替換為空白set taskname=%taskname:tasks\=%rem 以下為設定把filename裡.xml字元替換為空白set taskname=%taskname:.xml=%rem 以下為用使用者名稱和密碼建立名字為XXX的計劃認為,以xml檔案為參數schtasks /create /ru %runasUsername% /rp %runasPassword% /tn %taskname% /xml %filename% echo on
結束
這樣就可以匯出所有不是系統內建的計劃任務和匯入現有的xml格式的計劃任務了