2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

« 複数ファイルをドロップしたときの引数の順序は? | トップページ | コマンドラインでファイルやフォルダを名前に「コピー (n) ~ 」を付けて複製する。 »

2006年11月25日 (土)

ファイルをパイプ(FIFOファイル)代わりに使う。

Windows2000/XPでは、ファイルを1 writer and n readerで同時にオープンできます。

これを利用すれば、ファイルをパイプ代わりに出来ます。

以下はUnixのtailコマンドの-fオプション擬似です。

TAIL-F.CMD ファイル

@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0" %1
GOTO :EOF
@end
var StdIn=new ActiveXObject('Scripting.FileSystemObject').OpenTextFile(WScript.Arguments.Item(0));
while(true) if(StdIn.AtEndOfStream) WScript.Sleep(1000);else WScript.StdOut.Write(StdIn.Read(4096));

コマンドプロンプトを2つ開き、一方で、

ECHO AAA>LOG
TAIL-F.CMD LOG

として、他方で、

ECHO BBB>>LOG
ECHO CCC>>LOG

としてみてください。

最後はCTRL-Cで打ち切ってください。

« 複数ファイルをドロップしたときの引数の順序は? | トップページ | コマンドラインでファイルやフォルダを名前に「コピー (n) ~ 」を付けて複製する。 »