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ファイルを読み込んだりだとかいろんな場面で使う読み込みと、ログ出力すると考えるとかならず使う書き込み処理でした。
毎回、引数を改造したりちょろちょろといじって使うので、最低限の処理です。
コメント