自分のためのTips、誰かの為にもなるといいな・・・

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 を指定(省略可)

CSVファイルの読み込み




最終更新 2008/09/14 05:43:30 - yohei
(2008/09/14 05:43:30 作成)


検索

最近気になる言葉
LINQ
atコマンド
最近更新したページ
2015/7/16
2008/9/15
2008/1/30
2007/12/14
2007/11/14
2007/10/25
2007/9/23
2007/5/30