[Scripting] | |||||||||||||
WSHスクリプトでヘルプ・メッセージを表示する
|
|||||||||||||
|
解説 |
この「Windows TIPS」コーナでもさまざまなWSH(Windows Scripting Host)のコードを紹介してきた。読者の方は、これらのコードをどのようにしてユーザーに配布しているだろうか。
いちいち使用マニュアルを作成して、別に配布しているかもしれない。あるいは、ある程度対象ユーザーが限られていたり、自分だけのために作成したコードであるならば、そもそもマニュアルの作成などは考えたこともないかもしれない。だが、いかに個人用途であっても、しばらく経つと使い方などはきれいさっぱり忘れてしまうのが人の常であるし、「自分に限っては問題ない」という方でも、将来、配布すべき状況が起こってくることを考えれば、マニュアルや使い方のドキュメントを用意しておくべきだろう。
だからといって、いちいち別にドキュメントを作成するのでは面倒臭くもなるし(面倒なことは、だいたい続かない)、ユーザーの側でもコードと離れていては紛失してしまう可能性が大きくなる。
しかし、WSHのコメント機能を用いることで、コード中にオンライン・ヘルプを加えることができるようになる。コード中に追加されたヘルプは、実行時に適切な引数が渡されなかった場合のエラー・メッセージとして表示させることもできるし、また、コマンドプロンプトから「ファイル名 /?」の形式で呼び出して、表示させることも可能になる。
コードと一体化させて管理しておけば、コードとそのドキュメントを配布するのが簡単になるだけでなく、コードのメンテナンスや機能追加などで変更が生じた場合でも、同時にヘルプ・メッセージを修正するだけでよいので、積極的に活用して欲しい。
操作方法 |
手順1―テキスト・エディタでスクリプトのコードを入力する
ここでは、別稿の「TIPS―ファイルの文字コードを変換する」で扱ったkconv.wsfを例に、ヘルプ機能を追加してみることにする。赤文字で示した所が、前回からの追加部分である。なお、引用符(')で始まる行はコードの概要を解説するためのコメント部分なので、省略しても構わない。
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?> |
- サンプル・ファイルのダウンロード
(注:サンプルkconv.wsfをダウンロードするには、上のリンクを右クリックして、kconv.wsfというファイル名で保存してください)
WSHの実行ファイルは拡張子「.wsf」(Windows Scripting host File)とする必要がある。ファイル名自体は何でもよいが、ここでは元の通り「kconv.wsf」という名前で保存しておく。
手順2―WSHのコードを実行する(1)
kconv.wsfそのものに関する詳細な説明は、先の「TIPS―ファイルの文字コードを変換する」を参照して欲しい。ここでは、新たに追加されたコード部分(オンライン・ヘルプの表示)について、2つの方法で確認してみたい。
最初の方法は、エクスプローラなどからkconv.wsfのアイコンをダブルクリックすることだ。kconv.wsfは1個の引数(パラメータ)を要求するので、引数を伴なわずに起動すると、オンライン・ヘルプをダイアログ表示して、実行を中止する。オンライン・ヘルプには、kconv.wsfの<runtime>要素以下で指定された一連の説明が、整形された形で表示される。
表示されたヘルプ・メッセージのダイアログ |
引数を何も付けずに起動したり、コマンド・プロンプト上で「kconv /?」を実行するとこのようなダイアログが表示される。 |
手順2―WSHのコードを実行する(2)
ヘルプを表示させる二つ目の方法は、コマンド・プロンプトから「/?」スイッチを付加して、kconv.wsfを呼び出すことだ。kconv.wsfが「C:\」に格納されているならば、コマンドプロンプトから以下のように入力すればよい。このようなヘルプの表示方法は、ほかの多くのコマンドでも使用されている一般的な方式なので、ユーザーにも分かりやすいだろう。
C:\>kconv.wsf /? |
オンライン・ヘルプの定義方法について
以上が簡単な表示方法の手順であるが、これだけではよく分からないと思うので、いくつか説明を追加しておきたい。
オンライン・ヘルプを定義しているのは、kconv.wsf中の以下の部分だ。
<runtime> |
<runtime>要素には、<description>、<named>、<unnamed>、<example>などの要素を含むことができる。
<description>要素では簡単な「.wsf」ファイルの説明を、<example>要素では用例を記述する。属性は持たない。
<named>、<unnamed>要素は引数に関する情報を記述する要素だ。その名の通り、<named>要素は名前付きの引数(つまり、「ファイル名 /パラメータ名:値」の形式で指定することができる)を、<unnamed>要素は名前なし引数(つまり、「ファイル名 値」の形式で指定することができる)を、それぞれ定義する。これら要素においては、以下のような属性を指定することができる。
属性名 | 概要 |
name | 引数名。ただし<UNNAMED>要素ではヘルプで表示される以上の意味はない |
helpstring | ヘルプの説明文 |
type | 属性の型。string、boolean、simple(デフォルト)のいずれか。string、simpleの場合は「/パラメータ名:値」、booleanの場合は「/パラメータ名{+|-}」で指定する。<NAMED>要素でのみ指定可能 |
many | required属性で指定した回数以上の引数を指定可能か(True|False)。つまり、many要素がTrueの場合、required属性で指定した数値以上のパラメータを指定できる。<UNNAMED>要素でのみ指定可能 |
required | パラメータが必須かどうか(True|False)。ただし、<UNNAMED>要素では数値指定することで、登場可能な回数を指定することもできる。ヘルプで表示される以上の意味はない |
manyやrequired属性の指定はあくまでパラメータの情報を記述するのみであることに注意して欲しい。WSHはこの情報に基づいて、引数の妥当性チェックなどは行なわない。例にもあるように、引数の数や内容については、あくまで<script>要素の内部で自ら検証しなければならない。
なお、<description>、<named>、<unnamed>、<example>要素の代替として、<usage>要素を指定することもできる。例えば次のようになる(もっと長いメッセージでもよい)。
<runtime> |
<usage>要素を指定した場合、<runtime>要素配下の一切の要素は無視され、<usage>要素の内容だけがオンライン・ヘルプとして表示される。つまり、自由な形式でコードの説明を表示させたいという場合には、<usage>要素をそのほか要素の代替として使用することができる。
更新履歴 |
【2012/06/21】 属性名について解説している表の「概要」列にて、要素名「<UNNAMED>」と「<NAMED>」が複数個所で抜け落ちていました。お詫びして訂正させていただきます。 |
この記事と関連性の高い別の記事
- WSHに渡された引数の妥当性を自動検証する(TIPS)
- WSHスクリプトの仕様書を生成する(TIPS)
- ファイルの文字コードを変換する(TIPS)
- WSHからXMLファイルの設定情報を読み込む(TIPS)
- スクリプトレット・コンポーネントでリソース情報を定義する(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|