PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : system() und umleitung der Bildschirmausgabe



otelo
04-01-2007, 07:42
Hi,

ich versuche in einem Perlscript unter Windows per system() den Befehl net localgroup gruppenname abzusetzen, das Ergebnis hätte ich gerne in einem Array. Wenn ich es richtig verstanden habe liefert system() immer nur 0 oder 1 zurück, deswegen dachte ich in meinem jugendlichen Wahn, baue ich doch einfach eine Umleitung in ein Textfile ein und lese danach den Inhalt des Textfiles in ein Array. Nur leider funktioniert das nicht.

Ich mache folgendes


system("net localgroup $groupA > $groupA_member.txt");


Den Gruppenname habe bekommt er beim Durchgehen eines anderen Arrays zugewiesen, deswegen die Variable.

Auf dem Bildschirm bekomme ich die Gruppenmitglieder angezeigt, ein Textfile wird aber nicht erzeugt.

Habe ich denn überhaupt eine Möglichkeit die Ausgabe eines "externen" Befehles an Perl zurückzuholen?

Danke und Gruß
otelo

SeeksTheMoon
04-01-2007, 09:44
bei system würde das Skript die Ausgabe auf dem Bildschirm machen, versuch statt System einfach den Befehl in Backticks zu setzen:
`net localgroup $groupA > $groupA_member.txt"`;

reneeb
04-01-2007, 09:54
my $result = qx{net localgroup $groupA};
my @array = split /\n/,$result;

otelo
04-01-2007, 10:20
vielen Dank an Euch beide.

Bei der Lösung von SeeksTheMoon habe ich das Problem, dass er den Inhalt der Variable $groupA nicht ausgibt.

Da ich das Textfile eh wieder hätte einlesen müssen gefällt mir reneeb´s code, da ich mir den Schritt dann sparen kann.

Danke :-)
Wieder was dazu gelernt.
Gruß
otelo