[Scripting] | ||||||||||||
WSHからXMLファイルの設定情報を読み込む
|
||||||||||||
|
解説 |
WSH(Windows Scripting Hosts)でアプリケーションを構築する場合、リソース、パスなど、ユーザーが頻繁に変更したり、編集したりする可能性がある情報は、設定ファイルとして外部ファイル化しておくとよい。外部ファイル化することで、エンド・ユーザーが不用意にコードを編集しなくても済むし、万が一、設定を誤った場合でも、コード本体まで破損してしまうことを防ぐことができる。
設定ファイルといっても、その形式はさまざまだ。テキスト・ファイル形式は環境に依存せず、アプリケーションからの操作もしやすいため、簡易なアプリケーションでは好んで採用される。しかし簡易である分、テキスト・ファイルにはさまざまな問題があるのも確かだ。
まずは、編集の分かりやすさを考えてみよう。管理する項目が2~3項目ならば簡単だ。だがこれが10項目、20項目と増えていったらどうだろう。何番目のカラムがどの項目を表しているかなどは、一見しただけでは確認しにくくなる。
また、将来的に項目が拡張された場合はどうだろう。タブ区切りテキストやカンマ区切りテキストを処理する際に、アプリケーションは基本的に列の序列でデータを取得しているはずだ。ところが途中で何かしら項目が追加された場合、追加になった個所以降の序列はすべて変わってしまう。つまり、テキスト・ファイルではデータ・レイアウトの変更が、そのままアプリケーションに影響を与えてしまうことになる。
以上から、将来的なデータ・レイアウトの変更が頻繁に想定されるような状況、また、データの項目数が多い状況では、テキスト・ファイルの採用はあまり好ましくない。
そこで登場するのがXML(eXtensible Markup Language)である。XMLに関する詳細は、「XML&SOAフォーラム」を参照いただくとして、ここで注目していただきたいのは、XMLが人間の目にも分かりやすいタグ付けがされており、データの内容が視認しやすいという点、個々のデータにはタグ名を介してアクセスできるのでデータ・レイアウトの変更にも耐性・柔軟性があるという点だ。XMLには(もちろん)さまざまな用途が考えられるが、設定ファイルのフォーマットとして採用されるケースがとみに増えてきたのは、このような理由によるところが大きい。
本稿では、Windows TIPS「WSHでIEの『お気に入り』一覧を設定する」で利用した設定ファイルをXML形式に置き換え、WSHスクリプトから利用する方法について紹介しよう。XMLファイル読み込みの手法はもちろん、XML形式を利用することの利点もまた、サンプルを通じて理解していただきたい。なお、本稿ではあくまでXMLファイルの読み込みに特化した部分の解説を重点に紹介する。そのほかの細かいロジックについては、先のWindows TIPS記事を参照してほしい。
操作方法 |
手順1―テキスト・エディタでスクリプトのコードを入力する
まずはテキスト・エディタ(メモ帳でも何でもよい)を開き、以下のコードを入力してfavorites_xml.wsfというファイルを作成してほしい。ただし引用符(')で始まる行はコードの意味を解説するためのコメント部分なので、省略してもよい。プログラムの処理内容や、XMLファイルの読み込み方法などについては、コメントを参照していただきたい。
※ファイルfavorites_xml.wsf |
- サンプル・ファイルのダウンロード
(注:サンプルfavorites_xml.wsfを実行するには、上のサンプル・ファイルを右クリックしてfavorites_xml.wsfというファイル名で保存し、さらにC:ドライブのルートにデータ・ファイルをfavorites.xmlというファイル名で保存する)
WSHの実行ファイルは拡張子「.wsf」(Windows Scripting host File)とする必要がある。ファイル名自体は何でもよいが、ここでは「favorites_xml.wsf」という名前で保存しておこう。
手順2―WSHのコードを実行する
favorites_xml.wsfを実行するには、エクスプローラなどからfavorites_xml.wsfをダブルクリックするだけでよい。その際、あらかじめ上記のスクリプト中の定数CONFIGで指定された設定ファイル(ここでは「c:\favorites.xml」としている)が実際に存在することを確認しておいてほしい。実行後、お気に入りに指定したサイトへのリンクが作成(追加)されていれば成功だ。
favorites.xmlの例としては、例えば次のようなものを用意し、これをc:\favorites.xmlとして保存しておく。ルート要素<favorites>の配下に、個々のお気に入り情報を表す<site>要素を複数個含むことができる。個々の<site>要素には、現在、サイト名(<name>要素)とリンク先のURL(<url>要素)とを含むものとする。
※ファイルfavorites.xml |
- サンプル・データ・ファイルのダウンロード
(注:サンプル・データ・ファイルfavorites.xmlを準備するには、上のリンクを右クリックしてfavorites.xmlというファイル名でC:ドライブのルートに保存する)
なお、この例では、<site>要素の配下にあるのは<name>と<url>要素だけであるが、今後新たな要素として、例えばサイトを説明するための<description>要素が追加されたとしても、元のコードには影響が出ない点に注目してほしい。繰り返すが、この拡張性がXMLフォーマットの魅力の1つである。
この記事と関連性の高い別の記事
- FrontPage 2003をXMLエディタとして利用する(TIPS)
- WSHに渡された引数の妥当性を自動検証する(TIPS)
- WSHスクリプトでヘルプ・メッセージを表示する(TIPS)
- スクリプトレット・コンポーネントでリソース情報を定義する(TIPS)
- WSHからExcelファイルの設定情報を読み込む(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をインストールしてみる
![]() |
||
|
||
![]() |
Windows Server Insider 記事ランキング
- アップデートでフォント変わった!? Chromeのフォント設定を確認、変更する方法
- 始めてみようWSL、WSLを使ってWindowsにLinuxをインストールする
- 日付から自動的に曜日を入力する【Googleスプレッドシート編】
- 重複データを色付けしたり、削除したりする【Googleスプレッドシート】
- 諸般の事情からPDF→JPEGに変換したいときの方法4種
- Windows 11ロードマップ公開 最新機能のリリース予定をまとめて紹介
- 【Excel】複数のセルの文字列を結合して1つの文字列にする
- 【Windows 10→11移行】「復元するデバイスを選択」でどこまで移行できるか試してみた
- これからGoogleスプレッドシートを始める人必読『仕事がはかどるGoogleスプレッドシートの基本テクTIPS Vol.1』
- 【Windows 10/11】タスクスケジューラで定期的な作業を自動化する
- アップデートでフォント変わった!? Chromeのフォント設定を確認、変更する方法
- 日付から自動的に曜日を入力する【Googleスプレッドシート編】
- 重複データを色付けしたり、削除したりする【Googleスプレッドシート】
- 諸般の事情からPDF→JPEGに変換したいときの方法4種
- 始めてみようWSL、WSLを使ってWindowsにLinuxをインストールする
- 「Windowsメモリ診断ツール」でメモリの不具合をチェックする
- 【Excel】複数のセルの文字列を結合して1つの文字列にする
- 【Windows 10/11障害対策】パスやファイル名/フォルダ名が長すぎてエラーになる
- なぜか消えた[新規作成]-[テキストドキュメント]右クリックメニューを復活させる【Windows 11】
- Windows 10のサポート終了に備えて、Windows 11移行前にフルバックアップを実行する