【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
   
基礎解説
チェック式 WSH入門 第1回

2.WSHを始めるための準備

Microsoft MVP
Visual Developer - Scripting
牟田口 大介
2006/06/02
Page1 Page2 Page3

WSHの情報源

 WSHが登場した当初は、マイクロソフトの公式サイトにすらヘルプもドキュメントもサンプルも満足なものがなかったうえに、その多くが英語だったが、ここ数年でその状況は大きく改善された。いまではマイクロソフトのサイトや外部サイトで多数の日本語化されたドキュメントやサンプルが入手、あるいは閲覧できるようになっている。

 WSH 5.6のダウンロード・ページとして冒頭でもご紹介したが、これはWSHの総本山ともいうべきサイトである。ここではWSH(Windows Script)本体と、ヘルプ・ファイルがダウンロードできるほか、WSHやVBScriptのリファレンスを読むことができる。ヘルプ・ファイルはWSHスクリプト作成では必須となるので、忘れずにダウンロードしておこう。

 ここには、VBScriptで書かれた、分野別の900本以上のスクリプトのサンプルやスクリプトを使ったツールが公開されている。また、これらのサンプル・スクリプトをローカルにダウンロードして検索するためのツール(これもスクリプトで作られている)もあるので利用するとよい。

 手前みそで恐縮だが、筆者のサイトでもWSHに関する情報とサンプル・スクリプトを公開している。また、付属掲示板ではWSHに関する質疑応答が行われているので、何か分からないことがあったら、ここを参照してみるのもいいだろう。

Windows管理者のためのWSH入門

 @ITでもWSHに関する連載を公開している。プログラミングに関する知識がないととっつきにくい部分もあるかもしれないが、今回の連載でその橋渡しをするようにしていこうと思っている。

WSHを始めるための環境整備

 WSHのスクリプトは、テキスト・ファイルとして記述するので、テキスト・エディタと呼べるものであれば何を使っても作成できる。もちろんWindows OS標準のテキスト・エディタである「メモ帳」を使って記述することも可能だ。メモ帳なら、OSに追加のアプリケーションをインストールすることなく、スクリプトを記述できる。しかし高機能なテキスト・エディタを使うことで、より効率よくスクリプトを作成することができるだろう。VBScriptを記述するためのテキスト・エディタを選ぶポイントは次の5点である。

1.自動インデントができること

 自動インデントとは、改行キーを押すと、自動的に前行と同様に行頭のスペースやタブが挿入される機能である。VBScriptは構造化された言語なので、その階層に応じて行頭にスペースやタブを入れて記述することが多い。そのため、深い階層にある行の次行には、自動的にスペースやタブが入力されるとありがたいわけである。

2.キーワードを強調表示できること

 キーワードの強調表示とは、VBScriptで使われるキーワードや関数(命令文である英単語など)、文字列やコメント行を強調表示する機能(別の色で表示するなど)。これらが強調表示されることで、スクリプトが見やすくなり、スペルのミス、カッコの閉じ忘れなども発見しやすくなるというメリットがある。なお、VBScriptのキーワード設定がないエディタでも、VBScriptの基となった言語であるVisual Basicのキーワード設定を使えるならそれで問題ない。また、VBScriptキーワード設定ファイルを別途ダウンロードできる場合もあるので探してみるとよい。

3.行数・けた数が表示できること

 作成したスクリプトでエラーが発生した場合、どの行のどのけたでエラーが発生したかが表示されるので、その情報を基にエラーが発生した行を訂正することになる。そのため、カーソル位置の行数・けた数が表示できるものを選ぶとスクリプトのデバッグが容易になる。

4.作成したスクリプトをエディタから実行できること

 スクリプトを作成、保存した後、そのスクリプトを実行するには、通常、エクスプローラに戻ってそのファイルをダブルクリックする必要がある。スクリプトを書くときはこの保存、実行の手順を何度も繰り返すことになるが、エディタとエクスプローラを行ったり来たりするのは案外面倒である。エディタから直接、編集中のスクリプト・ファイルを実行できる機能があれば、その手間を省ける。多くのエディタでは、「関連付け実行」という名前が付けられているコマンドである。

5.VBScriptのコード入力を補完できること

 入力補完とは、VBScriptのキーワードの入力を始めると、入力候補となる項目が一覧表示され、それらの選択肢から選ぶことによって入力の手間を省略できる機能である。キーワードを用いた構文のヘルプがツールチップとして表示されるものもあり、ヘルプ・ファイルを参照しなくても、コードがらくらく書けるものまである。この機能が含まれるエディタは限られているが、これがあるとスクリプト記述の効率がぐっと上がるので、試してみるとよいだろう。

キーワード補完の例(SystemScripter 6.0によるキーワード補完)
キーワード「CreateFolder」を入力する際、頭文字の「cre」とだけ入力すると、「cre」で始まる入力候補がこのようにドロップダウン・リストとして表示される。画面は、後述するSystemScripter 6.0での入力例。

 これらの機能を満たすエディタをいくつか紹介しておこう。

  • 秀丸エディタ(シェアウェア)
     秀丸エディタは有名な定番エディタなので、ご存じの方も多いと思う。強力なマクロ(テキスト・エディタ上で動くスクリプトのようなもの)機能を搭載しており、エディタとしての機能も必要十分である。VBScriptの強調表示モードはデフォルトでは用意されていないが、Visual Basicのもので代用できる。また、WSH+VBS+JSメッセージ強調という強調表示定義ファイル・ライブラリを利用するのもよいだろう。ただし、残念ながらキーワードを補完する機能はない。

  • EmEditor(シェアウェア)
     EmEditorも秀丸エディタと並んで有名なテキスト・エディタの1つである。特筆すべき点として、VBScriptやJScriptでマクロを記述できるので、WSHを学習しておくと応用が利く。またデフォルトでVBScriptの強調表示が可能である。EmEditorにもキーワードを補完する機能はない。

EmEditorでコードを表示したところ
キーワード(青)、関数(赤)文字列(ピンク)、コメント(緑)のように分かりやすく色分けされているのが分かる。
  • TeraPad(フリーソフト)
     TeraPadは、機能としては必要最小限に抑えられているものの、その動作は軽快である。DoMacroというツールを使えば、WSHをTeraPadのマクロとして使えるようになる(TeraPadをオブジェクトとして呼べるようになる)。さらに、WSH補完クンというツールを使えば、VBScriptのコード補完にも対応する。

  • Visual Web Developer 2005 Express Edition(フリーソフト)
     Visual Web Developer 2005 Express Editionは、Visual Studio 2005という市販の開発用ソフトの機能限定版であり、Microsoftが無償で配布しているものである。本来はC#やVB.NETといった言語でWebアプリケーションを開発するための開発環境であるが、WSHで動作するvbsファイルも編集可能である。コード補完に対応しているうえ、オブジェクトブラウザ(オブジェクトの仕様を調べるツール)も付属しているので便利である。

  • SystemScripter(シェアウェア)
     SystemScripterは、海外製のソフトウェアのため、メニューなどは英語表記で分かりにくい面もあるが、強力な補完機能を備えたVBScript専用エディタである(入力補完の例として画面を示した)。コード・スニペット(よく使うコードの断片(定型コード)を挿入する機能)やオブジェクト・ブラウザなどのツールも豊富である。

実際に書いてみよう!

 ここまでで皆さんの手元にはWSH本体とヘルプ、エディタがそろったと思う。あとは書くだけである。冒頭に挙げたような複雑なスクリプトは取りあえず置いておいて、まずは何か簡単なものを書いてみよう。まず、メモ帳を立ち上げ、以下のように入力する。

WScript.Echo "WSHマスターに俺はなる!"

 
メモ帳にVBScriptを記述する
これはメッセージ・ダイアログを表示させるスクリプトである。これを「first.vbs」というファイル名で保存する。

 これは指定した文字列の内容をメッセージ・ダイアログに表示させる最も単純なスクリプトである。これを「名前を付けて保存」で「ファイルの種類」を「すべてのファイル」にした状態で、「first.vbs」という名前を付けて保存する。

 保存したスクリプトをエクスプローラで表示させ、そのvbsファイルをダブルクリックする。

保存したスクリプトをエクスプローラから開く
エクスプローラでスクリプトを保存したフォルダを表示させ、vbsファイルをダブルクリックする。

 すると、図のようなダイアログが表示されるはずだ。

実行結果を示すダイアログ
スクリプトに書いた内容が実行され、このように表示される。

 WSHはこのようにエクスプローラから実行することもできるが、バッチ・ファイルのようにコマンド・プロンプト内で実行することもできる。エクスプローラの右クリックメニューにも[コマンド プロンプトで開く]という項目があるが、これだとスクリプトの終了と同時にウィンドウが閉じてしまいメッセージが読めないので、別途コマンド・プロンプトを立ち上げる。まずはcdコマンドでスクリプトのあるフォルダに移動し、そこで次のコマンドを入力する。

cscript first.vbs
 
コマンドプロンプト内でスクリプトを実行する
WSHのスクリプトはコマンド・プロンプトでも実行できる。

 このコマンドを実行すると、スクリプトに書いた文字列が今度はコマンド・プロンプト内で表示されることが分かるだろう。これは、スクリプト・ホストにcscript.exeを指定したときのスクリプトの動作である。なお、エクスプローラで関連付けされているデフォルトのスクリプト・ホストはwscript.exeである。両者の使い分けであるが、ユーザーに何か問い掛けをしたり確認させたりする必要がある場合はGUI版のwscript.exeを、無人でバッチ処理をさせる際に、経過を表示させたいときにはCUI版のcscript.exeを使えばよい。

 このようにWSHでは、テキスト・ファイルにスクリプトを記述することにより、その内容を実行できるということがお分かりいただけたと思う。これから学習していくことになる複雑なスクリプトも基本は同じなので、ご安心いただきたい。

 次回からはこの連載のタイトルにもなっている「チェック式」で、VBScriptの基本から学習していこう。End of Article


 INDEX
  [基礎解説]チェック式 WSH入門
  第1回 WSHを始めよう
    1.WSHの便利な道具(オブジェクト)たち
  2.WSHを始めるための準備
 
 基礎解説

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています