8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VBSCRIPTを実行BATファイルに含める方法

Posted at

ファイル数が多いのが嫌だ

  • VBSCRIPTをバッチファイルで実行するとき、CSCRIPTまたはWSCRIPTコマンドの引数として
    VBSCRIPTが書かれたファイルのパスを指定します
    ちょっとしたスクリプトを実行するのにBATファイルとスクリプト記述ファイルの2つを用意しなければなりません
  • そこで、Windows環境でバッチファイルとVBSCRIPT文を一つのファイルにできないかということ

基本的な構造

  1. ファイル名の拡張子は.batにします
    拡張子を.batにすることによってダブルクリックでバッチファイルとして起動します
  2. CSCRIPTのコマンドラインオプションで自分自身を読み込むようにします
    Cscript //NoLogo //E:VBScript "%~f0"
    と指定すると自分自身をVBSCRIPTファイルとして実行します
    //E:VBscriptと書くことによってファイル拡張子がVBSでなくてもVBSCRIPTとして実行するようになります
  3. バッチファイルとして実行する部分はVBSCRIPTにとって無視できるようコメント行になるようにします
    ' 2> NUL & @CLS
    のように書くと、VBSCRIPTにとっては無害なコメント行で、
    バッチファイルとしては、' がエラーになるけれども、エラーメッセージはNULにリダイレクトすることによって
    メッセージ出力が抑止され & のあとに記述してあるコマンドが実行されます
  4. バッチ部分の最後は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

実行結果

VBSCRIPT.png

8
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?