スキップしてメイン コンテンツに移動

VBS で引数を受け取るサンプル

WScript.Arguments に引数要素が配列で格納されているので、これを取り出す。

===========================================
'#############################
'パラメータ=オーダーIDの取り出しとセット
'#############################

Dim oParam 'パラメータオブジェクト
Dim strPrm0  'パラメータ要素格納

Set oParam = WScript.Arguments
strPrm0 = oParam(0)

Wscript.echo strPrm0
===========================================

これを引数あり、引数なしでそれぞれ実行してみる。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>cscript.exe test.vbs a

a

>cscript.exe test.vbs

test.vbs(9, 1) Microsoft VBScript 実行時エラー: インデックスが有効範囲にありません。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

strPrm0 = oParam(0) の場所で怒られている。

引数なしで起動した場合には相応の対応をしたい。
そこで、上記を書き換える。

WScript.Arguments のCount ポロパティの値をチェックして動作を切り分ける方法。

===========================================
'#############################
'パラメータ=オーダーIDの取り出しとセット
'#############################

Dim oParam 'パラメータオブジェクト
Dim strPrm0  'パラメータ要素格納

Set oParam = WScript.Arguments

IF oParam.Count <> 0 Then 
    strPrm0 = oParam(0)
Else
    strPrm0 = "引数はありません"
End IF    

Wscript.echo strPrm0
===========================================

これを同様に実行してみる。うまく行った。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>cscript.exe test.vbs a

a

>cscript.exe test.vbs

引数はありません
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

コメント