技術情報コラムColumn

バッチファイルでのVBScriptの利用

技術解説
前回のコラム「VBScriptでループ制御」では、Do While文によるループ処理を紹介いたしました。 今回のVBScript入門の第6回は、バッチファイルでVBScriptを利用する方法について説明いたします。 では早速、バッチファイルを作成してみましょう。

① メモ帳を起動して、下図のように入力します。

VBScript    
② 「C:\Script」フォルダに「第6-1回.bat」という名前で保存します。 (「C:\Script」フォルダに、第2回のコラム「VBScriptで文字の入力」で作成した「第2回.vbs」ファイルがない場合は、過去のコラムを参照して作成しておいてください。)
   
③ メモ帳を終了し、エクスプローラで「C:\Script」フォルダを開きます。
VBScript    
④ 「第6-1回.bat」ファイルをダブルクリックします。「質問」ダイアログボックスが表示されましたら、ご自身のお名前を入力して「OK」ボタンをクリックしてください。
   
⑤ 下図のように「質問」ダイアログボックスに入力した名前がコマンドプロンプトに表示されたと思います。
VBScript       では、バッチファイルのVBScript部分について説明いたします。 VBScriptをバッチファイルから実行する場合は、以下のように記述します。   cscript スクリプトファイル名   この場合、スクリプト中の「Wscript.Echo」での出力はダイアログボックスではなく、コンソールに出力されます。もし、スクリプトファイルをダブルクリックした場合と同じく、「Wscript.Echo」での出力をダイアログボックスで行いたい場合は、「Cscript」の部分を「Wscript」に書き換えることによって同じ結果を得られます。   バッチファイルでスクリプトを実行する場合は、バッチファイルでよく使われるリダイレクト機能やパイプ機能も使用できます。例としてリダイレクト機能を使用してVBScriptで入力した文字列をファイルに出力する方法を紹介いたします。      
① メモ帳を起動して、下図のように入力します。
VBScript    
② 「C:\Script」フォルダに「第6-2回.bat」という名前で保存します。
   
③ 「第6-2回.bat」ファイルをダブルクリックします。「質問」ダイアログボックスが表示されましたら、ご自身のお名前を入力して「OK」ボタンをクリックしてください。
   
④ 下図のように「C:\Script」フォルダに「第6-2回.txt」が作成され、「質問」ダイアログボックスに入力した名前が「第6-2回.txt」に保存されたと思います。
VBScript       では、バッチファイルのVBScript実行部分について説明いたします。 VBScriptの出力をファイルにリダイレクトする場合は、以下のように記述します   cscript //nologo スクリプトファイル名 > 出力するファイル名   ファイルにリダイレクトする場合、「cscript」と「スクリプトファイル名」の間に「//nologo」オプションを記述します。このオプションを指定しなかった場合は、リダイレクトされたファイルに意図しない以下の内容も出力されてしまいます。    
Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved.
    また、ファイルへのリダイレクト機能を使う場合は、「wscript」コマンドは使用できません。必ず「cscript」コマンドを指定してください。   今回はここまでです。また次回のコラムをお待ちください。

◆他の回のコラムを見る

第1回 VBScriptで簡単なスクリプトを書こう
第2回 VBScriptで文字の入力
第3回 VBScriptで条件分岐処理
第4回 VBScriptで条件分岐処理 その2
第5回 VBScriptでループ制御
第7回 VBScriptでのコマンドライン引数の使い方