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 実行時エラー: インデックスが有効範囲にありません。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===========================================
'#############################
'パラメータ=オーダー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
引数はありません
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
コメント
コメントを投稿