[WSH JScript]ファイル操作

JavaScript

JScript版のWSHがなかなか出てこないのでよく使うファイル操作系をメモ

・ファイル読み込み

/// filename:ファイルパス
/// isArray:booleanで戻り値を配列にするか文字列にするか 
function readFile (filename, isArray)
{
	var file = new ActiveXObject ("ADODB.Stream");
	file.Type			 = 2; 		// テキストモード 1:バイナリデータ
	file.charset		 = "UTF-8";	
	file.LineSeparator	 = -1;		// CRLF 13:CR 10:LF
	file.Open ();
	try {
		file.loadFromFile (filename);
	} catch (e) {
		WScript.echo ("エラー");
		WScript.Quit (-1);
	}

	var reader = null;
	if (isArray) {
		reader = [];
		while (!file.EOS)
			reader.push (file.ReadText (-2)); // 行単位
	} else
		reader = file.ReadText (-1); // 全部

	file.Close ();
	return reader;
}

・書き込み

/// filename:ファイルパス
/// value:書き込む文字列
/// isOver:上書きするかどうか 
function writeFile (filename, value, isOver)
{
	var fs = new ActiveXObject("Scripting.FileSystemObject");
	var file = new ActiveXObject ("ADODB.Stream");
	file.Type			 = 2; 		// テキストモード 1:バイナリデータ
	file.charset		 = "UTF-8";	
	file.LineSeparator	 = -1;		// CRLF 13:CR 10:LF
	file.Open ();

	// 追記
	if (isOver) {
		is (fs.FileExists (filename)) {
			file.LoadFromFile (filename);
			file.Position = file.Size;
		}
	}
	// 改行ありで書き込み
	file.WriteText (value, 1); // 0:改行なし
	// 上書き
	file.saveToFile (filename. 2);
	file.close ();

}

・おまけ(VSでのデバッグ用のバッチ)

CSCRIPT //X XXXXXXXX.js

バッチ処理でSQLを読み込んだり、CSVファイルを読み込んだりだとかいろんな場面で使う読み込みと、ログ出力すると考えるとかならず使う書き込み処理でした。

毎回、引数を改造したりちょろちょろといじって使うので、最低限の処理です。

コメント

タイトルとURLをコピーしました