トップ > 興味のあること > コンピュータ > ソフトウェア
モッピー!お金がたまるポイントサイト
日々の生活にhappyをプラスする|ハピタス

Windows Script

http://www.microsoft.com/japan/msdn/scripting/default.asp
本意ではないのだが、普通の人にRubyインストールしろとは言えないもんなあ。

2004年9月1日

複数のドキュメントを相手に、複数の置換を行いたい。 私ならUnixに持っていって文字コードを変えてからsedスクリプト一発。 しかし、職場の一般人にこれをやれというのは辛い。 職場標準のTeraPadにはマクロ機能がなさそうなので、 いっそWindows Scriptでできないか、ちょっと調べてみることにした。

Windows Scriptは単独では実行できず、 Windows Script Hostという環境の中で実行するらしい。 Windows 2000には、 バージョン1.0ないし2.0のWindows Script Hostが組み込まれているとのこと。 まずはこいつを5.6にアップデート。 MicrosoftのWebからパッケージを持ってきて実行後、再起動。

ファイルの読み書き

ファイルの読み書きは、

  • ActiveXコントロールとしてのFileSystemObjectを生成。
  • FileSystemObjectのOpenTextFileメソッドでテキストストリームをオープン。
  • テキストストリームのReadLine、WriteLineなどで読み書き。
  • テキストストリームをクローズ。

といったところか。

fs = new ActiveXObject("Scripting.FileSystemObject");
srcFile = fs.OpenTextFile("test.jse");
var aLine = srcFile.ReadLine();
WScript.Echo(aLine);
srcFile.close();

文字列の置換

一応正規表現が使えるらしい。とりあえず、こんな感じ。

aLine = "「IPv4ポリシー」へのリンク";
var nLine = aLine.replace("「IPv4ポリシー」",
       "「<a href=\"/doc/ipv4-policy.html\">IPv4ポリシー</a>」");
WScript.Echo(nLine);

オブジェクト指向

コンストラクタを作ればOK、なのか?

function subpair(src, dest) {
       this.src  = src;
       this.dest = dest;
}
var pair1 = new subpair("「IPv4ポリシー」",
       "「<a href=\"/doc/ipv4-policy.html\">IPv4ポリシー</a>」");
WScript.Echo(pair1.src, "\n", pair1.dest);

配列

んでもって、配列の宣言はこう。

var aPair = new Array(
       new subpair("「IPv4ポリシー」",
           "「<a href=\"/doc/ipv4-policy.html\">IPv4ポリシー</a>」")
);

2004年9月7日

ドラッグ&ドロップなんかは楽ちんなんだが、 文字コードを変換する方法がわからない。 UTF-8しか考えてないのか?