なつかしのWSH

とっくに使えないものと思っていたこんなものがまだ(また)使えるようである。Windows Script Host(WSH)Windows管理ツール(スクリプト)のひとつである。パソコンで自動処理をさせるなどの非対話型の処理 ― 途中にユーザーからパラメータの入力を必要としない処理をいう ― が必要な場面で簡単にこれを利用することができる。昔のMS-DOS時代のバッチファイルによく似たようなものであると思えばよい。ただし、それよりはるかに高機能であるが。

WSHとして、Windows 98以降ではJavaScriptVBScriptの2つのスクリプトエンジンが用意されている。このどちらか(または両方)を使用してスクリプトを記述することになる。WSHスクリプトはテキストファイルである。テキストエディタで、JScriptとして作成した場合の拡張子は*.jsVBScriptとして作成した場合の拡張子は*.vbsとして保存すればよい。
このスクリプトは、デスクトップに置いたショートカットをクリックして実行するか、またはコマンドプロンプトからそのファイルを直接指定して実行することができる。


関連
IE Only:WSH


作成と実行の例

JavaScriptで「function seturl()」という関数を作る(明らかにActiveXを呼び出して使っている)。これはパソコンのデスクトップ上にこのサイト内にあるebkinfo.cgiへのショートカットを作成するものである。ショートカットのタイトルは「Excel VBA」である。以下のボタンまたはリンクをクリックすると実行される(ただしIEに限る)。



ExcelVBA(CGI)へのショートカット作成

これはMicrosoft Edgeでは動作しない。しかし、IEでは警告は出るが動作する(これは昔もそうだった)。


いまむかし

ということは、Windows 10以後は、それ用に作られたブラウザ(Edge)ではこういうスクリプト類1)を動作させることはやはり「取り止め」になっているということであろう。
NOTE
1) JavaScriptは使えるが、VBScriptやActiveXを呼び出すようなスクリプトはたとえJavaScriptであっても使えない。


しかし、ブラウザに組み込まずに単独で*.js*.vbs*.htaを使う場合は警告も出ずに実行できる

こういうスクリプトはローカルでちょっとだけ便利なバッチファイル。そんな程度の使い方をするようになっているということである。

たとえば、上のebkinfo.cgiへのショートカット作成部分を単独のseturl.jsとして保存して、これをWSHとして実行すると何の警告も出ずに正常に実行される(左図)。


注意点

昔のようにWSH(*.js, *.vbs)やHTA(*.hta)が使えるようになったようである。*.jsにはJavaScript、*.vbsにはVBScriptを書くなど、同一言語による記述が原則である。
しかし、*.htaではJavaScriptとVBScriptを混在させて使うことができる(JavaScriptにしかない機能もある)。この場合、HTML5ではJavaScriptがデフォルトのスクリプトになっているので、明示的に両者を区別して書かなければならない。

HTML5ではtype属性のデフォルトが「type="text/javascript"」となっている。そのため、埋め込みのJavaScriptの場合でも、JavaScriptの外部ファイル読み込みの場合でも、この属性の指定は不要である。省略できるということである。もちろんこれを書いても問題はない。
また、コメントの「<!--」と「//-->」も不要である。
ただし、それ以外のスクリプトたとえばVBScriptなどで記述する場合には、「type="text/vbscript"」の指定は必須のものになる

*.htaファイルでこの両者を混在させる場合、JavaScriptの記述をVBScriptの記述より先に書く必要がある。逆にすると起動時にスクリプトエラーが出る。

プログラミング <script> //この項はvbscriptょり先に書く //JavaScriptを書く </script> <script type="text/vbscript"> 'VBScriptを書く </script>

これを逆にすると原因不明のエラーに悩まされることになる(スクリプトには何のまちがいもないのに)。

しかし、こうすると今度はVBScriptを実行しようとすると「サポートされていないオブジェクトまたはメソッドです」という実行時エラーが出て実行できないという現象が生じる。おそらくスクリプトがJavaScriptであるということにされて、VBScriptは実行できない状態になっているものと思われる。この場合、JavaScript部分を削除すれば、想定したVBScriptは実行される。

いずれにしても、形の上では両方の言語を混在して使用することはできるが、その実用性はないということになる。ちなみに、復活する前の昔の*.htaでは両者を混在しても両方とも正常に実行されていた。また、Windows 10のデカ文字、デカ画像システムの影響で昔と比べて画面とコンテンツがバカでかくなっている。こういう点では、復活再生して使えるようになったとはいえ、昔と同じように使えるものにはなっていない。その意味では中途半端なものである。

- 2019/05/06 -





なつかしのWSHの復活と再生(tpc_0442)
なつかしのWSH(tpc_0438)
なつかしのHTA(tpc_0439)
なつかしのHTA/超簡易画像ビューア(tpc_0444)
なつかしのHTA/超簡易テキストエディタ(tpc_0458)
EdgeのIEモードの使用例(tpc_0516)
EdgeのIEモードとは(tpc_0517)
EdgeのIEモードでHTAを使う(tpc_0518)

人目の前世紀の遺物のアクセス(since 2020/11/05)。



VBScriptは既に廃止されているし、IE(Internet Explorer)も近々廃止される。こういうものが使える場面はもうないだろう。これからは、昔はこういうこともできた、という「思い出」としてだけ残ることになるだろう。
- 2021/08/26 -



バカほどこんな骨董品に興味をもつのよね。