autoit-script variable an dos-batch ubergeben

  • hi leute,

    ich hab das forum schon bezueglich meines problems durchsucht, komm aber nicht so recht weiter:

    ich starte in einer mein-batch.cmd mein autoit-script (start /b /wait mein-script.exe), dass mir dann eine variable ermittelt und diese direkt an die batch zurueck liefern soll, so dass ich dann in der batch als variable damit weiter arbeiten kann.

    es scheitert momentan an der uebergabe von autoit nach batch.

    wie mach ich das direkt?

    danke

    so long

    sam

  • [autoit]

    StdinWrite ( process_id[, data] )

    [/autoit]

    auszug aus der hilfe:

    Writes a number of characters to the STDIN stream of a previously run child process.

    vielleicht kannst du es hiermit ja machen... hab ich selbst jetzt aber noch nicht getestet

  • Warum schreibst Du die Batch nicht komplett nach AutoIt um ?

    Ist vom Aufwand her wahrscheinlich weniger, als die Übergabe von Batch --> AutoIt --> Batch.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • @ oliverh:

    da hab ich schon wieder das naechste problem: die process_id heraus zu bekommen ... hatte auf eine einfachere loesung gehofft ... vielleicht kommt die ja noch ... trotzdem danke ...

    Micha_he:

    batch compile to autoit ... ist jetzt nicht wirklich eine hilfe fuer mein problem ... ;( ... mit der batch muessen noch andere kollegen arbeiten, die noch weniger ahnung von autoit haben, als ich ...

  • du weißt doch wie deine batch datei heißt oder? das ist in aller regel auch die PID... einfacher gehts ned :D

  • @ oliverh:
    batch compile to autoit ... ist jetzt nicht wirklich eine hilfe fuer mein problem ... ;( ... mit der batch muessen noch andere kollegen arbeiten, die noch weniger ahnung von autoit haben, als ich ...

    Schreibt den jeder Deiner "unwissenden" Kollegen die Batch/AutoIt-Datei um ? Bei uns machen das nur die die wissen wie es geht. Die Anderen nutzen diese dann !
    Aber lassen wir die Diskussion darüber... muss Du ja selbst wissen.

    Hier eine Lösung:

    AutoIt-Script schreiben in dem Du die Variable mit

    [autoit]

    ConsoleWrite($variable)

    [/autoit]

    ausgibst. Dieses Script mit Aut2Exe kompillieren und dabei im Kompiler die Option 'Compile for System Console' auswählen. (als au3-Datei geht dies nicht und die Option gibt es wohl erst seit V3.3.xx)

    In der Batch weist Du einer Variablen den Wert dann wie folgt zu:

    Code
    for /f %%i in ('Autoit-Beispiel.exe') do set meineVar=%%i

    Funktioniert aber nur unter Win2000 oder neuer, da in den älteren Windows Version der For-Befehl die Option '/f' nicht kennt !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • grad wollt ich laut geben, dass ich in der autoit-hilfe die loesung gefunden hab, aber micha_he war schneller :D

    genau das isses: consolewrite

    vielen dank euch beiden fuer die hilfe ...

    so long

    sam

    ps: bearbeiten muss die batch nicht jeder koennen ... aber lesen wollen sie alle koennen ...

  • Code
    test.exe> datei.txt
    set /p MeineVar= <datei.txt
    ECHO MeineVar lautet: %MeineVar%


    Die Test.exe (autoit) übergibt per Konsole einen String an eine Datei, der inhalt dieser Datei wird an die Variable übergeben

    ciao
    Andy

    *edit*
    Wenn das AutoIt-script mehrere Zeilen in die Konsole schreibt, dann wird bei

    Code
    for /f %%i in ('Autoit-Beispiel.exe') do set meineVar=%%i

    die letzte Zeile der Konsole in die Variable geschrieben, beim oberen Beispiel die erste Zeile

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (8. Mai 2009 um 13:31)