ファイル数が多いのが嫌だ
- VBSCRIPTをバッチファイルで実行するとき、CSCRIPTまたはWSCRIPTコマンドの引数として
VBSCRIPTが書かれたファイルのパスを指定します
ちょっとしたスクリプトを実行するのにBATファイルとスクリプト記述ファイルの2つを用意しなければなりません - そこで、Windows環境でバッチファイルとVBSCRIPT文を一つのファイルにできないかということ
基本的な構造
- ファイル名の拡張子は.batにします
拡張子を.batにすることによってダブルクリックでバッチファイルとして起動します - CSCRIPTのコマンドラインオプションで自分自身を読み込むようにします
Cscript //NoLogo //E:VBScript "%~f0"
と指定すると自分自身をVBSCRIPTファイルとして実行します
//E:VBscript
と書くことによってファイル拡張子がVBSでなくてもVBSCRIPTとして実行するようになります - バッチファイルとして実行する部分はVBSCRIPTにとって無視できるようコメント行になるようにします
' 2> NUL & @CLS
のように書くと、VBSCRIPTにとっては無害なコメント行で、
バッチファイルとしては、'
がエラーになるけれども、エラーメッセージはNULにリダイレクトすることによって
メッセージ出力が抑止され & のあとに記述してあるコマンドが実行されます - バッチ部分の最後はEXITを実行するようにすれば以降の行はバッチファイルとしては無視されます
' 2> Nul & PAUSE & EXIT /b
実際の例
こんな感じで書けます
VBSCRIPT_SAMPLE.BAT
' 2> Nul & @Cls & @Cscript //NoLogo //E:VBScript "%~f0" %* & @pause & @Exit /b
' ここから下がVBScriptのスクリプト文です
WScript.Echo "これは、VBScriptのEchoです"
WScript.Quit