2. 引数(1)
引数は次のように使うのでした。
scripts/arg1.js (ファイルに保存にしてください)
--------------------------------------------
var args = WScript.Arguments;
var n = args.length;
for(var i = 0; i < n; i++)
WScript.Echo(args(i));
コマンドプロンプトから、
>cscript //nologo arg1.js a b
とすると、
a
b
と返ってきます。
詳しくは
前に書いたものをご覧ください。
名前付き引数とは、例えば次のように使う引数のことです。
dir /o:n
こうするとコマンド dir はファイルを名前順にリストします。
n の ところが d だと日付順にリストされます。
つまり「並び方(order)」というプロパティに対して、
「名前順(by name)」という値を入れているような感じです。
この名前付き引数がWSHで簡単に使えるようになりました。
scripts/arg2.js (ファイルに保存にしてください)
--------------------------------------------
var named = WScript.Arguments.Named;
if(named.Exists("O"))
WScript.Echo(named("O"));
コマンドプロンプトから、
>cscript //nologo arg2.js a b /o:c
とすると、
c
と返ってきます。
次のように
WshNamed
オブジェクトを得ると名前付き引数を簡単に操作できます。
WScript.Arguments.Named
WshNamed オブジェクトは
Dictionaryオブジェクトと同じように扱えて、
上の例では、
/o:c -> key : O, value : c
という関係になっています。
名前なし引数は、
WshUnnamed
オブジェクトを次のようにして得て、
WScript.Arguments.Unnamed
これをコレクションとして処理します。
scripts/arg3.js (ファイルに保存にしてください)
----------------------------------------------------------------
var unnamed = WScript.Arguments.Unnamed;
var n = unnamed.length;
for(var i = 0; i < n; i++)
WScript.Echo(unnamed(i));
さきほどと同じように、
>cscript //nologo arg3.js a b /o:c
とすると、
a
b
と返ってきます。