Windows Scripting Host 5.6
Written 12/8/01
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
 
と返ってきます。
Back