Kompilieren mit CMD-Line Aufruf

    • Offizieller Beitrag

    Hi,
    ich steh grad auf'm Schlauch. Ich versuche per Kommandozeile ein Skript zu kompilieren. Jedoch bekomme ich immer Fehlermeldung (Aut2exe listet mögliche Parameter auf und bringt dann die GUI ohne die übergebene Datei).
    Ich kann keinen Fehler entdecken - wie seht ihr das? Ohne Quotierung gibt es auch den Fehler.
    Jedoch sollte der Pfad schon quotiert sein, falls Leerzeichen enthalten sind. Und ich möchte auch gern mehrere Parameter übergeben. Eine Quotierung nur der Dateipfade geht ebenfalls schief.
    Hier die Befehlszeile mit Quotierung des kpl. Parameterstrings + seperater Quotierung der Pfade:

    Code
    C:\Program Files\AutoIt3\Aut2exe\Aut2exe.exe '/in "C:\Test\test.au3" /icon "C:\Program Files\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico" /comp 2 /nopack'


    und hier nur Quotierung der Pfade:

    Code
    C:\Program Files\AutoIt3\Aut2exe\Aut2exe.exe /in "C:\Test\test.au3" /icon "C:\Program Files\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico" /comp 2 /nopack

    Wer kann mich erleuchten? :rolleyes:

  • Der Pfad zur Aut2exe enthält auch eine Leerstelle, also gehören imho Quotes drumrum.

    Code
    "C:\Program Files\AutoIt3\Aut2exe\Aut2exe.exe" /in "C:\Test\test.au3" /icon "C:\Program Files\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico" /comp 2 /nopack
    • Offizieller Beitrag

    i2c: Danke, aber ich habe auch bereits diese Version erfolglos getestet. :(

    Zitat

    Wie rufst du es auf? Run?

    Ja, und in der Reihenfolge, die definiert ist in der Parameterangabe, wobei Default-Parameter nicht übergeben werden.

    Edit:
    Wohl eine fehlerhafte Beschreibung der Hilfe.

    Zitat

    Long filenames should be enclosed in double-quotes like "C:\Program Files\Test\test.au3".

    Zumindest bei mir dürfen innerhalb keine Quotas sein! Jedenfalls bekomm ich dann einen anderen Fehler. Mal weiter suchen.

  • Hi,

    folgende CMD funktioniert bei mir einwandfrei ...

    Code
    "C:\Program Files (x86)\AutoIt3\Aut2exe\Aut2exe.exe" /in "C:\Users\Greenhorn\Desktop\test.au3" /icon "C:\Program Files (x86)\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico" /comp 2 /nopack
    
    
    pause
    exit


    Gruß
    Greenhorn


    • Offizieller Beitrag

    i2c: Kann ich nicht bestätigen,
    Ich habe aktuell getestet und mir den Run-String mal in die Console schreiben lassen:

    Code
    '"C:\Program Files\AutoIt3\Aut2exe\Aut2exe.exe" /in "C:\WebSites\BugFix_1und1\dll\DLL_Bsp.au3" /icon "C:\Program Files\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico" /comp 2 /pack'


    Ergebnis, wie gehabt. Funzt nicht.

    Folgender Versuch bringt mir den Fehler: Destination File konnte nicht geöffnet werden:

    Code
    "C:\Programme\AutoIt3\Aut2exe\Aut2exe.exe /in C:\Dokumente und Einstellungen\XPMUser\Eigene Dateien\CODE\AutoIt\mb2.au3 /icon C:\Programme\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico /comp 2"

    Habe in XP (Virtual Machine) und Win7 getestet - mit identischem Ergebnis.

  • Also zumindest auf Win7x86 funktioniert bei mir das problemlos:

    [autoit]

    Run('"C:\Program Files\AutoIt3\Aut2exe\Aut2exe.exe" /in "D:\Dokumente\AutoIt3\test.au3" /icon "C:\Program Files\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico" /comp 2 /pack')

    [/autoit]
  • Das klappt bei mir ohne Probleme:

    Test System: Win7x64 Englisch:

    Code
    "c:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe.exe" /in "C:\temp\test.au3" /out "C:\temp\test.exe" /icon "C:\Program Files (x86)\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico"

    Auf WinXP Ger:

    Code
    c:\Programme\AutoIt3\Aut2Exe\Aut2exe.exe /in c:\AutoIt\Test01.au3 /out c:\AutoIt\Test01.exe /icon c:\Programme\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    • Offizieller Beitrag

    Ich habe eine Lösung gefunden! Ich darf zum Quotieren ausschließlich Doubleqoutes verwenden.
    So funzt es auch bei mir:

    Code
    """C:\Programme\AutoIt3\Aut2exe\Aut2exe.exe"" /in ""C:\Dokumente und Einstellungen\XPMUser\Eigene Dateien\CODE\AutoIt\mb2.au3"" /icon ""C:\Programme\AutoIt3\Aut2Exe\Icons\AutoIt_Old1.ico"" /comp 2"

    Danke für Eure Ideen.

  • Jetzt hatte ich gerade ein Testskript erstellt, das alles mitbringt außer Aut2Exe:

    [autoit]

    $sFile = @DesktopDir & "\test_compile.au3"
    $hFile = FileOpen($sFile, 2)
    FileWrite($hFile, "MsgBox(0, '', 'TestMessage')")
    FileClose($hFile)

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

    $sPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir")

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

    $sCommand = StringFormat('"%s\Aut2exe\Aut2exe.exe" /in "%s" /icon "%s\Aut2Exe\Icons\AutoIt_Old1.ico" /comp 2 /pack', $sPath, $sFile, $sPath)
    $iCode = RunWait($sCommand)
    MsgBox(0, '', "Finished - ExitCode: " & $iCode)

    [/autoit]

    Und ja, die CMD.exe erlaubt keine einfachen Anführungszeichen so weit ich weiß. Da muss man immer doppelte verwenden, falls man in batchdateien arbeitet. (Jedenfalls hat das bei mir nie funktioniert)

  • Hier eine Version, um aus SciTE zu kompilieren:

    [autoit]


    #AutoIt3Wrapper_Run_Before=del /f /q "%scriptfile%_x64.exe"
    #AutoIt3Wrapper_Run_Before=del /f /q "%scriptfile%_x86.exe"
    #AutoIt3Wrapper_Run_Before=""%autoitdir%\aut2exe\aut2exe.exe" /in "%in%" /out "%scriptdir%\%scriptfile%_x64.exe" /nopack /x64"
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Run_After=ren "%out%" "%scriptfile%_x86.exe"
    ...

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    • Offizieller Beitrag

    Ich zeige gleich wofür ich es brauchte - in Skripte: Notepad++ und AutoIt

    Edit:
    Nach einem Neustart verhält sich jetzt auch mein Laptop 'normal' und eure Bsp. funktionieren. 8o
    Ich frage mich gar nicht erst warum, hat mich nur den halben Tag gekostet... :S