Run für exe mit Leerzeichen und Parameter

  • Hallo,

    ich muss eine exe ausführen die ein Leerzeichen enthält. eigentlich kein Problem, gibt ja mehrere Lösungen dafür. Ich muss aber noch ein Parameter dazugeben, dies gelingt mir nicht. Hier paar Infos:

    exe : TrueCrypt Format.exe
    Parameter: /n

    Ohne den Parameter habe ich es so angegeben

    Run('"C:\Programme\TrueCrypt\TrueCrypt Format.exe"')

    Mit dem Parameter funkt das nicht mehr


    Ich habe mal die exe in "TrueCryptFormat.exe" umgenannt was auch funktionierte, das Hauptprogramm zickte aber weil ja die Datei umbenannt wurde und es so fehler gab.

    Tja vllt hat einer von euch eine Lösung. schonmal danke.

    Marcoh

  • Hi
    Probiers doch mal mit Shellexecute().
    Ich habe früher auch immer run benutzt und hatte damit immer Probleme deshalb benutze ich nurnoch Shellexecute.

  • danke eagle es funkt.
    mein kollege hat noch eine andere lösung gefunden die ebenfalls funktioniert


    $name = '"C:\Programme\TrueCrypt\TrueCrypt Format.exe"'
    $name2 = " /n"


    run($name&$name2)

  • du kannst es auch so machen:

    [autoit]

    Run('"C:\Programme\TrueCrypt\TrueCrypt Format.exe" /n')

    [/autoit]
  • Hallo zusammen,

    habe ein ähnliches Problem. Wie oben gelesen funktioniert folgender Aufruf:

    [autoit]

    Run('"C:\Programme\TrueCrypt\TrueCrypt Setup.exe" /u')

    [/autoit]

    Würde statt "c.\Programme" aber gerne mit der Varibalen "@ProgramFilesDir" arbeiten. Leider bekomme ich die oben nicht eingebaut.
    Kann mir jemand erklären wie ich das angeben muss?

    Hatte gedacht es müsste so klappen

    [autoit]

    Run('@ProgramFilesDir & "\TrueCrypt\TrueCrypt Setup.exe" /u')

    [/autoit]

    Wozu dienen die " ' " (einfachen Hochkommas?)

  • Habe es gerade doch noch hinbekommen. Hier die Lösung kann vielleicht noch jemand gebrauchen:

    [autoit]

    Run('"' & @ProgramFilesDir & '\TrueCrypt\TrueCrypt Setup.exe"' & " /u")

    [/autoit]

    Programmaufruf mit Parameter und Variable @ProgramFilesDir

  • Ich hab leider immer noch ein Problem mit dem Leerzeichen. :(

    Probiere schon die ganze Zeit rum aber es funktioniert nur wenn im Pfad kein Leerzeichen ist.
    kann ich das irgendwie umgehen?

    [autoit]


    Run('"F:\Pfadmitleer 1\7za.exe" x F:\Pfadmitleer 1\Archiv.7z -pkennung -oF:\Pfadmitleer 1 -r -aoa')
    ShellExecute("F:\Pfadmitleer 1\7za.exe"," x F:\Pfadmitleer 1\Archiv.7z -pkennung -oF:\Pfadmitleer 1 -r -aoa")

    [/autoit]

    (öffnet eine DOS-Box)

  • Versteh ich dich falsch?

    [autoit]



    Run('"F:\Pfadmitleer 1\7za.exe"" x F:\Pfadmitleer 1\Archiv.7z -pkennung -oF:\Pfadmitleer 1 -r -aoa"')

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

    Es ändert sich nicht wirklich was ^^

  • Also ganz ehrlich... ich bin zu blöd dafür :D so gehts iwie nicht oder 7zip mag sowas nicht als Parameter.

    Ich habs jetz so gelöst, hoffe das ist auch vertretbar?

    [autoit]


    $short = FileGetShortName("F:\gubl 1\gublgubl 2")
    Run('"' & $short & '\7za.exe"' & " x " & $short & "\Archiv.7z -pkennung -o" & $short & " -r -aoa")

    [/autoit]
    • Offizieller Beitrag
    [autoit]

    Run('"' & $short & '\7za.exe"' & ' x "' & $short & '\Archiv.7z" -pkennung -o "' & $short & '" -r -aoa')

    [/autoit]

    Edit kürzer :

    [autoit]

    Run('"' & $short & '\7za.exe" x "' & $short & '\Archiv.7z" -pkennung -o "' & $short & '" -r -aoa')

    [/autoit]
  • Wenn man leerzeichen im Befehl hat, sollte man ihn mit

    Code
    Chr(34)


    umschließen: Chr(34) = "

    Beispiel:

    Code
    Global $Script = "C:\Program Files\Ordner mit Leer Zeichen\test.sql"
     
    RunWait(Chr(34) & $PostgreSQLpsqlPfad & Chr(34) & " -h  localhost -U postgres -d postgres -p 5432 -f " & Chr(34) &  $Script & Chr(34), @ScriptDir)

    MfG