この記事は、Fujitsu Advent Calenderの 3 日目の記事です。
はじめに
@GORO_Nekoです。ご存知の方ご無沙汰してます。初めての方お初にお目にかかります。
えーっと、先にお断りをば一言。
以下は、自分が所属する会社の意向を反映したものでもスタンスを示すものでもなく、単なる一個人の趣味の活動から産まれた記述です。
JScriptって知ってます?
JavaScriptじゃございません。
いや JavaScript の一種ではあると思うんだけど、なんかそう言い辛いスクリプト言語。
… そう、Open JDK だったり OracleJDK だったりに対する Visual J++ のようなスクリプト言語と言えば「…わかってもらえるでしょうか?」なスクリプト言語です(どっちも産みの親 Microsoft サンだし)。
で、JScript ってナニ?
ざっくり言えば、ECMA 262 規格に準拠した Javascript の一種になります。
Microsoft サン自身 docs.microsoft.com のMicrosoft Windows スクリプト テクノロジに関する説明記事で、そう述べています。
ECMA 準拠の機能、ECMA に準拠しない機能の一覧や機能詳細が公開されているので、ここいらを見れば特に他の解説本等が手元になくてもプログラムを組めるはずです。
JScript は WScript オブジェクトやMicrosoft ActiveX Data Objects (ADO) オブジェクト等を利用する機能を有しており、MS Windows 、.Net の諸機能や、MS OFFICE の提供するコンポーネントや機能を、便利に利用することにたけています。
動作するプラットフォームが MS Windows OS のみで OK なら、ディレクトリ・ファイル操作、標準入力・出力・エラー出力操作、レジストリ操作、DBアクセス等の機能を持ったスクリプトを、これ 1 つでゴリゴリかけてしまいます。
Javascript の一種なので当然「構造化プログラミング機能」「オブジェクト指向プログラミング機能」を持ち合わせたうえ、MS Windows 由来の機能を便利に使え、バッチファイル代わりにコマンドラインアプリケーションが結構便利にかけちゃう(まぁ、非 MS Windows プラットフォーム上では動かんけど)スクリプト言語。それが自分にとってのJScript だと思っています。
機能紹介その壱: JScript で標準入出力操作
前述の通り JScript は WScript オブジェクトの利用が可能です。
WScript オブジェクトには標準入力・出力・エラー出力を操作するためのプロパティ( StdIn、StdOut、StdErr )が用意されています。
各プロパティには入力内容を読み取ったり、コマンドプロンプトに出力を行ったりするためのメソッドが実装されえているので、これを使って標準入力・出力・エラー出力を操作できます。
【プログラミング例】
WScript.StdOut.WriteLine("テストです");
WScript.StdOut.WriteLine("何か入力してください");
in_string = WScript.StdIn.ReadLine();
WScript.StdOut.WriteLine(in_string + " と入力しましたね?");
上記のコードをエディタ等でファイル名 "test01.js" と言うファイルを作ったとします。
x:\> cscript test01.js
作成した js ファイルは、スクリプトエンジン "cscript" を使って実行することができます。
コマンドプロンプト( "CMD" )上で以下のコマンドを実行してみると、JScript で標準入出力を操作できることがわかると思います。
ある縁で JScript を使う羽目(…ゑ?)になって、「結構集中的に使い方を調べた」 & 「このまま調べた結果を放置してるとじきに忘れて近い将来泣くことになりそうな気がする」だったので、この記事を備忘録代わりに書いてみました。
ディレクトリ・ファイル操作方法や DB アクセス方法等、どっかに書いておかないと忘れそうな情報がまだいくつか頭の中に残っているので、気力が続いたらそれらの紹介文も書いてみようと思います(…まぁ、そのうち…)。
自分以外のどっかの誰かの為になれば、Ruby 以外のスクリプト言語を使う羽目になったのも「無駄じゃなかった…かな?」と思いつつ。
では、また。
※ 追記(2019/12/02)
続編書きました。