CMD steuern

  • Guten Abend,


    Habe folgendes Problem, ich möchte das dass Programm ein cmd Fenster öffnet und da drin Befehle schreibt das habe ich soweit alles hinbekommen mit $Pid = run usw und die Befehle führe ich mit Controlsend aus aber mein Problem ist das ich da die ganze zeit mit sleep arbeiten muss weil das autoit Programm nicht wartet bis der Befehle fertig aus geführt ist nun meine frage:

    Wie kann ich das am besten bewerkstelligen das gewartet wird das ein Befehl ausgeführt wird und dann der nächste erst ausgeführt wird

  • Ich wollte die adb (android debug bridge) ansteuern und ein paar befehle hinter einander ausführen z.b daten von mein handy auf den Rechner ziehen usw und da wollte Ich das in der cmd übergeben so das ich die console noch offen habe fals ich das Autoit Programm pausieren und eigene Befehle eingeben kann.


    Und wenn ich die Befehle mit consolesend übergebe muss ich immer ein sleep zwischen die Befehle machen, mir wäre es aber lieber das das autoit program solange wartet bis ein Befehl fertig ist und dann den nächsten ausführt

  • Wenn ein Befehl fertig ist bekommst du das im Grunde ja nur durch das Feedback im StdOut mit.
    Also z.B. dass die Eingabeaufforderung wieder erscheint oder (je nach Befehl) ein Rückmeldung erscheint.
    Du musst also StdOut auswerten nach dem du einen Befehl ausgefüht hast und daraus das Beenden des Befehles ableiten.

  • Kennst du dafür ein gutes tutorial? weil wen ich in dem Run Befehl $STDOUT_CHILD rein setze dann geht die cmd kurz auf und gleich wieder zu ohne irgend was zu machen.


    wen ich das so schreibe beendet sich die cmd immer sofort


    $iPID = Run(@ComSpec, "", @SW_SHOW, $STDOUT_CHILD)



    EDIT:


    Ok habe es jetzt soweit geschafft das er mir die Ausgabe bei SciTE unten in der Console schreibt, habe um zu schauen ob er bis zum Schluss wartet mal ein Download gestartet, aber da beendet er das Programm nach ein paar Sekunden und immer wenn er die 7 Zeile in der Console schreibt.




    Und mir ist aufgefallen das die CMD im Hintergrund noch weiter downloadet aber das Autoit Programm beendet sich




    das hier wäre natürlich besser aber da habe ich das Problem das er den Text nicht ordentlich in den Edit schreibt und das ich danach kein 2 Befehl ausführen kann

    und gut wäre es wenn er bei _exit die $iPID auch gleich mit schließen würde



  • Hast du es schon mal mit "RunWait" probiert, wie BugFix in Post2 geschrieben hatte?


    Das Problem der adb.exe war, soweit ich mich noch erinnere, dass nach der Funktion der Prozess immer geschlossen werden musste und sich nicht selber nach dem CMD Aufruf schloss.


    Über die ADB hatte ich das immer so gemacht

    zB.


    Das, was du dir über die ADB laden möchtest, in eine Funktion setzen und das ganze dann über AutoIt aufrufen.

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

    Einmal editiert, zuletzt von oh-ha ()