バッチを汎用利用して運用を効率化する


概要

Windowsのタスクスケジューラーでタスク設定する際、パラメータをオプション設定してバッチを汎用的に利用する方法を紹介します。

こんな時にオススメ

  • アウトプットを分けたい
  • ログもそれぞれで出力したい
  • でも処理がほとんど同じ(バッチを分ける程でもない)

⇒できれば1コのバッチで運用していきたい!

実装サンプル

(前提)

実行されるコマンドのイメージ
Cscript Sample.wsf /param:1

(パラメータ取得)

Sample.wsf
Public Function SetParameter(ByRef parameter)
    If WScript.Arguments.Named.Exists("param") Then
        parameter = WScript.Arguments.Named("param")
    Else
        WScript.Echo "パラメータなし"
        WScript.Quit
    End If
End Function

(個別ログ出力)

  • バッチ名にパラメータを付けることで個別に作成できます
Sample.wsf
Public Function SetLogFileName(ByVal parameter)
    SetLogFileName = "log_" & WScript.ScriptName & "_" & parameter & ".txt"
End Function

オプション設定方法

  • 「タスクの設定」⇒「操作タブ」⇒「新規」を選択してで各設定値を入力します(その他の設定は適宜行ってください)

入力欄 設定サンプル 備考
プログラム/スクリプト Cscript
引数の追加(オプション) Sample.wsf /param:{値} ・「param」の部分(パラメータ名)は任意です
開始(オプション) C:\Test\ ・バッチファイルの配置ディレクトリを指定します

最後に

同じような事をやろうとしている方の参考になれば幸いです。