Ausgab in bestehendes cmd Fenster

  • Hallo,
    ich habe eine Batchdatei, die ein Autoit script startet. Ich habe nun aber das Problem, das ich gerne was in das geöffnete cmd Fenster ausgeben, bzw. noch wichtiger ausführen möchte.
    Ich habe mein Script schon als CUI statt GUI kompiliert und es mit "ConsoleWrite" versucht, aber wenn ich mit "ConsoleWrite" versuche Befehle auszuführen klappt das nicht.
    So z.b. bei set var1=das ist ein test
    Arbeite ich mit "_RunDos" oder "Function Run Run(@ComSpec & " /c " & 'commandName', "", @SW_HIDE)" habe ich das Problem, das ja immer ein neues cmd Fenster geöffnet wird, was aber schelcht ist, weil ich ja die Ausgabe für die Batch brauche, die schon läuft.

    Kennt jemand einen weg, wie man ins Fenster was die Batch verwendet, etwas ausführen kann?

    Ich starte das Autoit script mit: scriptname.exe /wait

    Falls das generell nicht geht, kann ich eine Variable erstellen, auf die auch meine Batch zugreifen kann? Ich hab das mal mit "set testvar=test" über "_RunDos" probiert, aber ohen erfolg...

    Ein Autoit script habe ich jetzt momentan nicht vorliegen, brauche das eh für viele verschiedene scripts die je nach einsatz variieren. Bei bedarf kann ich mir kurz eins ausdenken ^^
    Vieleicht sei noch zu erwähnen das ich am ende jedes Autoit scripts das Errorlevel setze mit z.b. "EXIT (2)"
    Das lese ich dann mit der Batch über die Variable %ERRORLEVEL% wieder aus. Ich habe mal probier da mehr als nur eine Zahl reinzupacken, das Ergebnis war aber das ich nur die Zahl bekam und den Text den ich reingepackt habe nicht.

    Ich hoffe jemand hat einen Tipp wie man das realisiert :)

  • ich glaube du musst per au3info (dem fenster inspector) das cmd fenster ermitteln und das dann selectieren lassen und dann mit Send arbeiten...
    ich bin sowieso nen noob in autoit aber vielleicht hilft es ja :)

  • Du könntest es als CUI laufen lassen

    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    RunWait('ipconfig')
    Run('ping localhost')

    [/autoit]

    21 is only half the truth.

  • Ich habe mein Script schon als CUI statt GUI kompiliert und es mit "ConsoleWrite" versucht, aber wenn ich mit "ConsoleWrite" versuche Befehle auszuführen klappt das nicht.


    Das habe ich ja schon probiert, ich wollte dann mal testweise eine variable setzen, aber wie mache ich das? Auch mit Run('set var=test')? Ich hatte mit console write immer das Problem, das nichts in der variable stand...
    So hier mal der Batch code:

    Code
    test5.exe /wait
    
    
    echo %testvar1%
    
    
    pause
    exit

    Und was man in Autoit machen könnte, geht so natürlich nicht...

    [autoit]

    Run("set testvar1=Das ist ein Test")
    EXIT (1)

    [/autoit]

    Als CUI kompiliere ich sowieso schon die ganze zeit ;)

    EDIT:
    Der Code hier ist realistischer, geht aber auch nicht

    [autoit]

    #include <Process.au3>
    _RunDos("set testvar1=Das ist ein Test")
    EXIT (1)

    [/autoit]

    Einmal editiert, zuletzt von Neklor (18. März 2010 um 19:22)