#navi(../)
* 引数を取得する方法・Arguments [#u7c14ca0]
WshArgumentsオブジェクトを利用して引数を取得する方法を以下に記します。~
また名前付き引数、名前なし引数の取り扱いについても記述してあります。
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* 関連記事 [#o167f800]
-[[WSHで引数を取得する方法・Arguments・Named, Unnamed>WSH/WSHで引数を取得する方法・Arguments・Named, Unnamed]]
* WshArgumentsオブジェクトを使用したサンプルコードと実行結果 [#x57b7530]
以下のVBScriptサンプルコードでArgumentsプロパティを使用するコードを記します。~
また、VBScriptサンプルコードの実行結果も記します。
** Argumentsプロパティを使用したサンプルコード [#a262f257]
#ref(arguments1.vbs)
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
** Argumentsプロパティを使用したサンプルコードの実行結果 [#p0842b12]
以下に名前なし引数と名前付き引数の実行例を記します。
- 名前なし引数
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
実行結果を見ると、引数がそのまま表示されているのが確認できます。~
以下に、名前付き引数、名前なし引数の場合の引数取得VBScriptサンプルコードおよび実行結果を記します。
* WshNamed, WshUnnamedオブジェクトを使用したサンプルコードと実行結果 [#l42e5d38]
上記では引数として渡された値をそのまま表示するサンプルコードと実行例を記しました。~
ここでは、名前付き引数(値が設定された引数)と名前なし引数の取り扱い方法について以下に記します。
** Named, UnnamedのVBScriptサンプルコード [#p73bd0fe]
#ref(arguments2.vbs)
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
** Named, UnnamedのVBScriptサンプルコード実行結果 [#bf009dfe]
上記サンプルコードの実行例として以下のような引数を指定しました。
/foo /bar:123 hoge
3つの引数は以下のようになります。
- /foo 名前付き引数・値なし
- /bar:123 名前付き引数・値123
- hoge 名前なし引数
以下の実行結果を確認すると、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
#htmlinsertpcsp(win-btm.html,win-sp.html)