Thread System-Ausgabe in Datei umleiten - inkl. ReturnCode-Steuerung (23 answers)
Opened by Duhmok at 2012-02-20 15:54

Gast db
 2012-02-28 11:48
#156480 #156480
Hallo, danke für eure Rückmeldung!

Also versucht habe ich, unter Windows, bislang den Lösungsvorschlag von murphy und damit u.a. auch erreicht, dass EIN Teil der Ausgabe in ein Array übergeben wurde, jedoch nie der für mich relevante Part, in dem der Fehler charakterisiert wird.

Also habe ich mich nochmal detaiilert mit system() beschäftigt und entdeckt, dass zumindest der STDOUT auch ohne weiteres wie folgt ausgesteuert werden kann:

Code (perl): (dl )
1
2
3
4
my $output = $srootpath."sysoutput.txt";
my $cmd = $impKorr." -cfgfile ".$cfgfile." -dbuser ".$USER." -dbpassword ".$PWD;

$rc = system($cmd." >".$output);


Das Ergebnis ist, dass der STDOUT (!?) in die besagte Datei geschrieben wird. Das ist zwar nicht perfekt, da die Ausgabe nun nur noch in die Datei und nicht mehr zusätzlich auf die Kommandozeile erfolgt - aber vorerst nicht schlimm.

Nun habe ich noch folgende beiden Varianten probiert:

Code (perl): (dl )
$rc = system($cmd." 2>".$output);


--> führt entweder direkt dazu, dass das entsprechende Programm "sich falsch aufgerufen fühlt" und einen Fehler meldet - oder zu keiner Ausgabe in die Datei führt.

Code (perl): (dl )
$rc = system($cmd." 2>&1".$output);


--> selbes Problem...

Warum ist es mit ">" so einfach, aber "2>" macht alles so kompliziert?!

View full thread System-Ausgabe in Datei umleiten - inkl. ReturnCode-Steuerung