このエントリーをはてなブックマークに追加


引数を取得する方法・Arguments

WshArgumentsオブジェクトを利用して引数を取得する方法を以下に記します。
また名前付き引数、名前なし引数の取り扱いについても記述してあります。


関連記事

WshArgumentsオブジェクトを使用したサンプルコードと実行結果

以下のVBScriptサンプルコードでArgumentsプロパティを使用するコードを記します。
また、VBScriptサンプルコードの実行結果も記します。

Argumentsプロパティを使用したサンプルコード

 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プロパティを使用したサンプルコードの実行結果

以下に名前なし引数と名前付き引数の実行例を記します。

  • 名前なし引数
    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オブジェクトを使用したサンプルコードと実行結果

上記では引数として渡された値をそのまま表示するサンプルコードと実行例を記しました。
ここでは、名前付き引数(値が設定された引数)と名前なし引数の取り扱い方法について以下に記します。

Named, UnnamedのVBScriptサンプルコード

 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サンプルコード実行結果

上記サンプルコードの実行例として以下のような引数を指定しました。

/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


添付ファイル: filearguments1.vbs 571件 [詳細] filearguments2.vbs 538件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:50:38