#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS