problem mit commandline auslesen (stdoutRead)

  • hallo,

    ich hatte mir vor ein paar monaten ein skript geschrieben um ein befehl iin der windows commandline auszuführen und anschließen die ausgaben einzulesen und in einer txt datei zu speichern. Leider funktioniert das Skript jetzt nicht mehr. Ich habe schon viel versucht, bekomme es aber nciht hin.


    Ich denke das Problem liegt darin, dass die .bat datei den befehl cd test und dann den befehl get_log. Dann sollte eigentlich sofort die logdatei über die commmandline ausgegeben werden, jedoch kommen erst einige leerzeilen. Im Textdokument welches autoit erzeugt, werden alle ausgaben bis eben zu diesen leerzeilen ausgegeben. Ich weiß nur nicht warum. Hoffe ihr könnt mir helfen.

    hier der entsprechende Code-ausschnitt


    [autoit]


    #include <Constants.au3>

    $file = FileOpen ( "log.txt", 1 )
    $shell = Run( "log.bat", @ScriptDir , @SW_show, $STDERR_CHILD + $STDOUT_CHILD) ;neu logs laden und in log.txt speichern
    While 1
    $line = StdoutRead($shell)
    If @error Then
    ExitLoop
    EndIf
    FileWrite ( $file , $line )
    Wend
    FileClose ( $file )

    [/autoit]


    MfG

    filewalker

  • Hi,
    warum lässt du die Ausgabe des Kommandozeilenprogramms in der Batchdatei nicht per Umleitung ">" in eine Textdatei speichern?
    Ich vermute eher den "Fehler" in der Batchdatei bzw bei der Ausgabe statt in deinem AutoIt-Script
    ciao
    Andy
    Edit: 2er^^

  • vilen dank für eure superschnelle Hilfe. So klappt das super. Die Funktion kannte ich gar nicht. Aber komishc mit dem Fehler.


    Mein batch skript sieht so aus:

    Code
    cd test
    get_log


    aber so funktionierts ja jetzt!


    DANKE!