Ausgabe eines cmdlet übergeben

  • Hallo liebe Forengemeinde,

    ich suche eine Möglichkeit, um die Ausgabe eines cmelets zu übergeben und in AutoIt zu verwenden.

    In meinem Beispielskript wäre das die IP-Adresse:

    [autoit]

    $_connect = run('C:\Windows\System32\cmd.exe /C ipconfig | find "IPv4-Adresse"')
    If $_connect = "127.0.0.1" Then

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

    MsgBox(1,"Status", "Du bist verbunden")

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

    Else

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

    MsgBox(1,"Status", $_connect)

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

    EndIf

    [/autoit]

    Das Problem ist, dass hierbei Beispielsweise die Variable $_connect nicht den Wert "127.0.0.1", sondern einen einfachen Zahlenwert hat, der sich bei jedem Ausführen des Skripts verändert.

    Ich würde jetzt gerne wissen, wie ich die Ausgabe von

    [autoit]

    run('C:\Windows\System32\cmd.exe /C ipconfig | find "IPv4-Adresse"')

    [/autoit]

    (beispielsweise 192.168.0.1)

    in eine Variable schreiben kann.

    Ich hoffe ich konnte das verständlich ausdrücken ?(

    Gruß

    Tim

    Einmal editiert, zuletzt von fd13_hsk (28. Mai 2014 um 12:58)

  • Zunächst einmal Danke für deinen Hinweis Oscar.
    Ich habe mir StdoutRead mal angesehen, leider bekomme ich immernoch nicht das gewünschte Ergebnis

    [autoit]

    Local $_abfrage = Run(@ComSpec & " /c " & 'ipconfig | find "IPv4-Adresse"', "", @SW_HIDE)
    Local $_connect

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

    While 1
    $_status_zcm = StdoutRead($_abfrage)
    If @error Then ExitLoop
    MsgBox(1, "STDOUT gelesen:", $_connect)
    WEnd

    [/autoit]

    Dieses Skript sollte mir ja das selbe ausgeben wie der Windows Befehl

    C:\Windows\System32\cmd.exe /K ipconfig | find "IPv4-Adresse"

    Leider funktioniert das nicht so wie gewollt, da die Schleife beendet wird (Rückgabewert: @error <> 0)

  • Erstens musst du (wie auch im Beispiel zu sehen) den 4. Parameter von Run anpassen und zweitens steht deine Ausgabe in $_status_zcm, du gibst aber $_connect aus.