1.3 起動時にパラメタを与える
 プログラムを起動するときに、パラメタを指定する場合の方法です。処理する内容は同じでも、処理対象とするコードが違う…なんてことがあるでしょう!?そんな場合に、実行する都度人の手でプログラムの一部分を書き換えて実行…なんて面倒なこともやりたくないでしょう!?そんなときは、プログラムを起動するときに外から情報を与えるのが一番っ!

 起動時に指定したパラメタを取得する場合は、Wscript.Argumentsというオブジェクトを作成し、そこから取得します。
使用例
 Wscript.Argumentsの使用例です。このプログラムには、パラメタを2つ与えます。

 まずSet命令を使って、Wscript.ArgumentsオブジェクトをobjParmへ保存します。
 ※保存後は、保存した変数(例では、objParm)に対して操作を行います。

 次に、取得したパラメタの数(.Countプロパティで参照)をチェックし、2コより多い場合と少ない場合はエラーメッセージを表示します。パラメタが正しく2コ与えられていれば、その内容(objParm(0からの番号で指定)で取得)を変数へ保存。最後に、その内容をメッセージとして表示します。

 ところで、objParm(0)objParm(1)は、直接WScript.echoの所で使ってもいいのだが、なんとなく…(笑)

 ■VBScriptでの記述例
Option Explicit

Dim objParm
Dim strMessage1
Dim strMessage2

'@パラメタ情報の保存
Set objParm = Wscript.Arguments

'A取得したパラメタが2コ未満のときはエラー
If objParm.Count < 2 Then
   WScript.echo "パラメタが足りません(汗)"

'B取得したパラメタが2コより多いときもエラー
ElseIf objParm.Count > 2 Then
   WScript.echo "パラメタが多いです(汗)"

Else
'C取得したパラメタが2コのときはOKなので
'パラメタを取得し、メッセージとして表示
   strMessage1 = objParm(0)
   strMessage2 = objParm(1)
   WScript.echo "パラメタ1個目=" & strMessage1 & " パラメタ2個目=" & strMessage2
End If

 ■JScript(JavaScript)での記述例
var strMessage1;
var strMessage2;

//@パラメタ情報の保存
var objParm = WScript.arguments;

//A取得したパラメタが2コ未満のときはエラー
if (objParm.length < 2) {
   WScript.echo("パラメタが足りません(汗)");

//B取得したパラメタが2コより多いときもエラー
} else if (objParm.length > 2) {
   WScript.echo("パラメタが多いです(汗)");

} else {
//C取得したパラメタが2コのときはOK
//  パラメタを取得しメッセージとして表示
   strMessage1 = objParm(0);
   strMessage2 = objParm(1);
   WScript.echo("パラメタ1個目=" + strMessage1 + " パラメタ2個目=" + strMessage2);
}
起動方法!
 パラメタの与え方です。超簡単!起動時コマンドの後ろに、半角スペースで区切ってお好きなパラメタを書くだけ!各パラメタを区切るときは必ず半角スペースですが、与えるパラメタは半角でも全角でも、どちらでもOK!

 次の例は、上のプログラムをparamget.vbsというファイル名で作成し起動するときです。

c:\happy>cscript paramget.vbs aaaaa メッセージ
Copyright(C) 1999-2006 結城圭介。 All rights reserved