Hallo!
Ich rufe per
Process myProcess = new Process();
myProcess.StartInfo.FileName = "pcli";
myProcess.StartInfo.UseShellExecute = true;
myProcess.Start();
Das Consolen-Programm PCLI.exe auf. Nun möchte ich das Ergebniss anzeigen lassen (wie es bisher geschieht) UND in eine Datei umleiten.
Gibt es dafür eine einfache Lösung oder schon fertige Klassen die auch keine Probleme mit cout / cerr overflow haben?
Vielen Dank
Christof
Hi,
hab Dein Problem noch nicht ganz verstanden. Möchtest Du einfach ein Ergebnis einer Berechnung oder ähnlichem in eine Datei (was für eine Datei überhaupt XML / Text) schreiben ???
Oder möchtest Du den Inhalt der Konsole in eine Datei schreiben ???
Versuch mal Deine Probleme besser zu umschreiben. 😉
Hallo christof.k,
Process myProcess = new Process();
myProcess.StartInfo.FileName = "cmd";
myProcess.StartInfo.Arguments = "/k pcli | tee datei";
myProcess.StartInfo.UseShellExecute = true;
myProcess.Start();
tee.exe gibt es z.B. von http://unxutils.sourceforge.net
herbivore
@herbivore
Das geht auch mit Bordmitteln 🙂
cmd.exe /k dir . /s /b > test.txt | type test.txt
Wäre sicher einen Versuch Wert ob es mit pcli läuft.
Gruss
Programmierhans
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Hallo Programmierhans,
bei mir geht es mit der Pipe nicht. Allerdings geht es mit & oder && statt der Pipe.
Trotzdem ist es gemogelt 🙂 weil die Ausgabe erst nach Programmende beginnt. tee schreibt gleichzeitig auf den Schirm und die Datei.
herbivore
@hebivore
Bei mir fängt die Ausgabe aber sofort an ...
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Hallo Programmierhans,
vielleicht ein Unterschied zwischen Win2k und XP?
herbivore
Original von herbivore
vielleicht ein Unterschied zwischen Win2k und XP?
Könnte sein..... ich habe Win2K
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Das mit dem tee war ja suppi. Läuft perfekt.
Gibt es noch andere Unix-Tools die das tägliche Leben erleichtern?
Christof
P.S.: Wie kann ich denn die Farbe des CMD-Fensters ändern? Als commandline würde ich COLOR xy eingeben, aber wenn ich den Process starte, kann ich ihm ja nicht mehrere Befehle auf dem Weg geben, oder?
Hallo christof.k,
Gibt es noch andere Unix-Tools die das tägliche Leben erleichtern?
Massenhaft! 🙂
aber wenn ich den Process starte, kann ich ihm ja nicht mehrere Befehle auf dem Weg geben, oder?
Doch kannst du mit & oder &&. Also z.B. cmd /k color xy & tuewas.
herbivore
PS: ... oder in dem du eine Batch-Datei aufrufst.
Noch eine Frage to "tee". Gibt es eine Möglichkeit, auch stderr umzuleiten. Ich habe bei meinem Proggi gerade Bildschirmausgang und Datei verglichen und es fehlen Teile, die wahrscheinlich in stderr umgeleitet werden. Ich bin aber am gesamten Inhalt interessiert....
Gibt es dafür eine Lösung?
Vielen Dank
Christof
Hallo christof.k,
cmd /k pcli 2>&1 | tee datei
Mit 2> wird stderr umgelenkt und mit &1 auf stdout vereint.
herbivore
Super, dass mit dem 2>&1 ist ja suppi. Damit bin ich am Ziel meiner Träume!!
Vielen Dank!!!
Christof