[WSH] Windowsのコマンドプロンプトでtee

2018年1月9日火曜日

JavaScript Windows WSH

tee

[WSH] Windowsのコマンドプロンプトで正規表現を使って、文字列置換ではコマンドプロンプトから文字列置換をする方法を書いた。

他にもよくある作業として、画面で出力を確認しながら、同じものをファイルに取っておきたいことがあるよね。
いわゆるteeだ。

WSHでやってみる

なので、teeもWSHでやってしまおう。

tee.js
// cscript //nologo tee.js filename

var filename = WScript.Arguments(0);
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var file = fso.OpenTextFile(filename, 2, true);

while (!WScript.StdIn.AtEndOfStream) {
  var str = WScript.StdIn.ReadLine();

  WScript.StdOut.WriteLine(str);
  file.WriteLine(str);
}

file.close();

これで標準出力とファイルにコピーしてくれる。
例えば、ファイルfooから"hello"を検索して、画面に出力しつつ、ファイルbarに保存したい場合は以下のようにする。

>findstr hello foo | cscript //nologo tee.js bar