Ausgehend von Deiner Aufgabenstellung würdest Du eher sowas benötigen:
Delphi-Quellcode:
program Tee;
{$APPTYPE CONSOLE}
var
line : string;
sFile : string;
fFile : TextFile;
begin
if ParamCount in [1..2] then begin
sFile := ParamStr(1);
end else begin
WriteLn('Syntax: tee Ausgabedatei');
WriteLn;
WriteLn(' tee SchreibDieAusgabeHierHin.txt');
WriteLn;
WriteLn(' tee SchreibDieAusgabeHierHin.txt append');
WriteLn(' (Die Ausgabe wird an die bestehende Datei angehangen.)');
WriteLn;
halt(255);
end;
AssignFile(input, ''); // stdin
AssignFile(output, ''); // stdout
AssignFile(fFile, sFile);
Reset(input);
Rewrite(output);
case ParamCount of
2 : begin
if ParamStr(2)[1] in ['A','a'] then begin
{$I-}
Append(fFile);
if IOResult <> 0 then Rewrite(fFile);
{$I+}
end else begin
Rewrite(fFile);
end;
end;
else
Rewrite(fFile);
end;
while not Eof do begin
ReadLn(line);
WriteLn(line);
WriteLn(fFile,line);
end;
CloseFile(fFile);
CloseFile(output);
CloseFile(input);
end.
Das Programm liest die Ausgabe einer Konsolenanwendung und schreibt sie in eine Datei, gibt sie aber auch gleichzeitig auf der Konsole aus.
Der Aufruf erfolgt dann z. B. in dieser Form:
dir /s|tee InDieDateiSollGeschriebenWerden.txt
In der Schleife
while not Eof do begin
könntest Du natürlich dann beliebige Auswertungen, Verarbeitungen ... vornehmen.