2017年11月
      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) ~ 」を付けて複製する。 »