WSHサンプル集
Rev.1を表示中。最新版はこちら。
基本テンプレート
拡張子wsfのファイルを作成する。<job id="JOBID"> <script language="JScript"> </script> </job>スクリプトファイルのディレクトリを取得
// スクリプトファイルのディレクトリ var dir = WSH.ScriptFullName.substr(0, WSH.ScriptFullName.length - WSH.ScriptName.length); var path_in = dir + "input.txt"; var path_out = dir + "output.txt";
テキストファイルの読み書き
ファイルの文字コードは、基本的にASCII(Shift_JIS)になり、Unicodeを指定すると、UTF-16になるようだ。読み込み
var fs = new ActiveXObject("Scripting.FileSystemObject"); var fin = fs.OpenTextFile(path_in); // 一行ずつ読む場合 while (!fin.AtEndOfStream) { var s = fin.ReadLine(); } // 一括で読む場合 //var s = fin.ReadAll(); fin.Close();
書き込み
ファイルを新規作成して、書き込む場合既存ファイルがある場合、デフォルトでは、上書きしない(下の例では、上書きを指定)
var fs = new ActiveXObject("Scripting.FileSystemObject"); // 引数 (path[, true:overwrite[, true:unicode]) var fout = fs.CreateTextFile(path_out, true); fout.WriteLine("Hello"); fout.Write("World!"); fout.Close();
既存ファイルへの上書き書き込みの場合
ファイルが無い場合、デフォルトでは新規作成しない(下の例では、作成を指定)
var fs = new ActiveXObject("Scripting.FileSystemObject"); var ForReading = 1, ForWriting= 2, ForAppending = 8; // 引数 (path, io_mode, create) var fout = fs.OpenTextFile(path_out, ForWriting, true); fout.WriteLine("Hello, WSH!"); fout.Close();
CreateTextFileを使用するか、OpenTextFileを使用するかは、以下の場合を除き、どちらでも良さそう。
- 追加書き込みしたい → OpenTextFile の第2引数に ForAppending を指定
- ファイルが無ければ、新規作成したい → CreateTextFile で第2引数に false を指定(省略可)
- ファイルが無ければ、新規作成したくない → OpenTexFile の第3引数に false を指定(省略可)