WshArgumentsオブジェクトを利用して引数を取得する方法を以下に記します。
また名前付き引数、名前なし引数の取り扱いについても記述してあります。
以下のVBScriptサンプルコードでArgumentsプロパティを使用するコードを記します。
また、VBScriptサンプルコードの実行結果も記します。
1: Set oArgs = WScript.Arguments 2: 3: nArgc = oArgs.Count 4: WScript.Echo "Arguments count : " & nArgc 5: 6: For i = 0 To nArgc - 1 7: WScript.Echo oArgs(i) 8: Next 9: 10: Set oArgs = Nothing
以下に名前なし引数と名前付き引数の実行例を記します。
C:\wsh>cscript /nologo arguments1.vbs a b c Arguments count : 3 a b c
C:\wsh>cscript /nologo arguments1.vbs /a /b:100 Arguments count : 2 /a /b:100実行結果を見ると、引数がそのまま表示されているのが確認できます。
上記では引数として渡された値をそのまま表示するサンプルコードと実行例を記しました。
ここでは、名前付き引数(値が設定された引数)と名前なし引数の取り扱い方法について以下に記します。
1: Set oArgs = WScript.Arguments 2: Set oNamedArgs = WScript.Arguments.Named 3: Set OUnnamedArgs = WScript.Arguments.Unnamed 4: 5: WScript.Echo "-- WScript.Arguments --" 6: nArgc = oArgs.Count 7: WScript.Echo "Arguments count : " & nArgc 8: For i = 0 To nArgc - 1 9: WScript.Echo oArgs(i) 10: Next 11: 12: WScript.Echo "-- WScript.Arguments.Named --" 13: WScript.Echo "Named Count : " & oNamedArgs.Count 14: If oNamedArgs.Exists("foo") Then 15: WScript.Echo "foo = " & oNamedArgs.Item("foo") 16: End If 17: 18: If oNamedArgs.Exists("bar") Then 19: WScript.Echo "bar = " & oNamedArgs.Item("bar") 20: End If 21: 22: WScript.Echo "-- WScript.Arguments.Unnamed --" 23: WScript.Echo "Unnamed Count : " & oUnnamedArgs.Count 24: For i = 0 To oUnnamedArgs.Count - 1 25: WScript.Echo oUnnamedArgs.Item(i) 26: Next 27: 28: Set oArgs = Nothing 29: Set oNamedArgs = Nothing 30: Set OUnnamedArgs = Nothing
上記サンプルコードの実行例として以下のような引数を指定しました。
/foo /bar:123 hoge
3つの引数は以下のようになります。
以下の実行結果を確認すると、WScript.Argumentsは引数の数と引数の値をそのまま出力しています。
WScript.Arguments.Namedは、/foo, /bar:123の2つが対象となります。
引数fooには値なし、引数barには123の値が設定されていることが確認できます。
Existsメソッドで引数が存在するかを確認し、存在する場合はItemプロパティで値を取得しています。(14行目から20行目)
最後にWScript.Arguments.Unnamedですが、hogeが対象となっていることが確認できます。
C:\wsh>cscript /nologo arguments2.vbs /foo /bar:123 hoge -- WScript.Arguments -- Arguments count : 3 /foo /bar:123 hoge -- WScript.Arguments.Named -- Named Count : 2 foo = bar = 123 -- WScript.Arguments.Unnamed -- Unnamed Count : 1 hoge