WshNamed オブジェクトと WshUnnamed オブジェクトを使うと、名前付き引数と名前なし引数を扱うことができます。
WshNamed オブジェクトは名前付き引数のコレクション、WshUnnamed オブジェクトは名前なし引数のコレクションです。
参照の方法は、それぞれ、WScript.Arguments.Named、WScript.Arguments.Unnamed となります。
以下に引数にアクセスする例を示します。
コマンドラインからの実行を前提とし、GUIで実行された場合は終了するようにしました。
Option Explicit
Dim named, unnamed, i, strOut
If InStr(WScript.FullName, "WScript.exe") > 0 Then
WScript.Echo "このスクリプトはCUIで使用してください。"
WScript.Quit(1)
End If
Set named = WScript.Arguments.Named
Set unnamed = WScript.Arguments.Unnamed
If named.Exists("file") Then
strOut = "キー「file」に「" & named("file") & "」が指定されました。"
Else
strOut = "キー「file」は指定されていません。"
End If
WScript.Echo strOut
If named.Exists("uid") Then
strOut = "キー「uid」に「" & named("uid") & "」が指定されました。"
Else
strOut = "キー「uid」は指定されていません。"
End If
WScript.Echo strOut
WScript.Echo
WScript.Echo "↓Unnamed↓"
For i = 0 To unnamed.Count - 1
WScript.Echo unnamed(i)
Next
このコードを実行した結果を以下に示します。
C:WSH>cscript //nologo Named_UnnamedArgs.vbs stop /file:a.xls 12.5 /o:"What's up?"
キー「file」に「a.xls」が指定されました。
キー「uid」は指定されていません。
↓Unnamed↓
stop
12.5
C:\WSH>