相当な時代遅れ?
どういうわけか最近まわりでVBSが流行ってきている.そうとうな遅れ具合ですな.けどどうもVBは好きになれないので,こっそりJScriptをいじってみてるわけです.しっかし,ここまでマイナーというか,相手にされてない言語も珍しいですね.もちろんAJAX方面でJavaScipt自体は隆盛を誇っていますけど,WSHの言語としてのJScriptは,もののみごとにマイナー路線まっしぐら.あまりのドキュメントの少なさにびっくりです(せっかくJScript.NETなんてのもあるのにもったない).
ということで,ドキュメントがなければ自作するしかありません.
Hello World
//hello.js WScript.echo("Hello World");
お約束の``Hello World''.
WScriptはWSHの提供するオブジェクトのルートオブジェクト.インスタンスを作らなくてもメソッドが使えます(クラスメソッドを提供している).WScript.echoでWscriptのechoメソッドを引数``Hello World''で呼び出しているだけです.
このファイルをダブルクリックで動かせば,窓が開いてその中に``Hello World''とでてきます.これはコマンドラインで
wscript hello.js
としても同じです.さらに単に
hello.js
cscript hello.js
とすると,コマンドラインで
Microsoft (R) Windows Script Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. Hello World
とでてきます.
デフォルトではwscipt.exeに関連付けられていて,GUIで動くようになっています.あえてコマンドラインにしたい場合は明示的にcscript.exeを指定すればCUIで動くのです.
コマンドライン引数(「名前なし」,「名前つき」)
最初何のことか全然理解できませんでした.わざわざ「名前なし」「名前つき」なんて区別されてるわりには,何が「名前なし」「名前つき」の差なのかがさっぱり.
結論としては
- 普通の引数は「名前なし」
- コマンドラインオプションに相当する引数は「名前つき」
ということです.他の言語だと,引数は引数,オプション用の文字列でもそれは引数であり,プログラム側で解析するものですが,WSHはそうではなくって,「オプション用に引数を書けば,システム側で整理してくれる」ということです.MSらしいといえばらしいある種の押し付けがましさはありますが,他の言語でも既存のライブラリを使うことと大きな違いはない(ライブラリの選択の自由の差はありますが)かもしれません.