Ausgabe nach Autoit umlenken

  • Hallo,

    ich versuche mittels Autoit mehrere Virtuelle Maschinen unter VMware Server 2 nach einer Vorauswahl zu starten und sicher zu beenden. Das funktioniert auch ganz gut. Jetzt stehe ich vor folgendem Problem: als Windows Skript listet

    cd \Program files\VMware\VMware Server
    vmrun -T server -h https://192.168.0.9:8333/sdk -u Benutzer -p password list

    die gerade laufenden virtuellen Maschinen auf. In Autoit habe ich geschrieben:

    Code
    $arbeitsverzeichnis = "C:\Program files\VMware\VMware Server" 
    $parameter = "-T server -https://192.168.0.9:8333/sdk -u Benutzer -p password" 
    ShellExecuteWait("vmrun.exe", $parameter & "list", $arbeitsverzeichnis)

    Funktioniert auch, aber wie bekomme ich die Ausgabe jetzt irgendwie in eine Variable oder ähnliches, um sie in Autoit weiter zu verarbeiten?

    Danke für eure Hilfe

    Einmal editiert, zuletzt von mattbecher (31. Juli 2010 um 23:04)

  • 2 Möglichkeiten
    - Ausgabe per > in eine Textdatei umleiten und diese einlesen
    oder

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Local $out = Run(@ComSpec & " /c dir c:\", @ScriptDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) ;Programm anpassen
    Local $line
    While 1
    $line &= StdoutRead($out)
    If @error Then ExitLoop
    Wend
    msgbox(0,"StdoutRead",$line)

    [/autoit]
  • Zitat von mattbecher

    läuft prima! Verstehe es allerdings nicht so ganz...

    Mach dir nix draus, aber wenn dir der folgende Textabschnitt aus der Hilfe

    Zitat von Hilfe zu StdoutRead()

    StdoutRead liest aus dem Konsolen-Standard-Ausgabe-Stream eines Child-Prozesses, der normalerweise von Konsolen-Applikationen genutzt wird, um Text auf dem Bildschirm auszugeben.

    zu unverständlich erscheint, dann einfach einen Verbesserungsvorschlag bei Übersetzung der Hilfe-Datei ins Deutsche, Fragen/Anregungen posten.

    Aber Hauptsache, es funktioniert :D