RunWait will nix machen

  • hallo,

    ich will in RunWait einen Pfad mit Lücken (leerzeichen) verarbeiten.

    dazu habe ich dann mal folgendes ausprobiert:

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

    RunWait(@ComSpec & ' /c "' & $CmdLine[1] & '", @ScriptDir, @SW_HIDE)

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

    da wird allerdings nichts ausgeführt, obwohl der ich ja den kompletten pfad in Anführungszeichen gesetzt habe.

    muss ich das irgendwie anders machen?

  • ich will da nur mal eine exe aufrufen zum testen. den übergabeparameter habe ich mal in einer msgbox ausgegeben und da waren die Anführungszeichen nicht mehr dabei, obwohl ich sie bei den parameter mit übergeben habe.

    wenn ich z.b.:

    C:\Dokumente und Einstellungen\...... habe, muss ich da dann das leerzeichen vorher ersetzen, wenn ich so einen pfad in dem runwait verwenden will?

    Einmal editiert, zuletzt von anno (7. März 2009 um 00:01)

    • Offizieller Beitrag

    Also mal der Reihe nach:
    Script:

    [autoit]


    If $CmdLine[0] = 0 Then Exit
    RunWait(@ComSpec & ' /c "' & $CmdLine[1] & '"', @ScriptDir, @SW_HIDE)

    [/autoit]


    Das compiliert als "cmdline.exe"
    Aufruf in DOS-Box mit: cmdline.exe notepad.exe
    funktioniert bei mir einwandfrei, bis auf @SW_HIDE, aber das hatten wir ja schonmal.

  • wenn ich diesen code ausprobiere bekomme ich z.b. den exitcode 1 zurück. das aber nur in autoit. in der normalen kommandozeile manuelle eingegeben funktioniert es.

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

    $b = RunWait(@ComSpec & ' /c ' & '"C:\programme\7-Zip\7z.exe" a -r -t7z -ssc -mmt=4 -x!*.exe "C:\Dokumente und Einstellungen\anno\Desktop\7zip\a.7z" "c:\Dokumente und Einstellungen\anno\Desktop\7zip\b"', @ScriptDir, @SW_HIDE)

    [/autoit]
  • Das sollte eher so aussehen:

    [autoit]


    $b = RunWait(@ComSpec & ' /c ' & '7z.exe a -r -t7z -ssc -mmt=4 -x!*.exe "C:\Dokumente und Einstellungen\anno\Desktop\7zip\a.7z" "c:\Dokumente und Einstellungen\anno\Desktop\7zip\b"', "C:\programme\7-Zip\", @SW_HIDE)

    [/autoit]

    was mache ich wenn meine exe datei z.b. ein leerzeichen im namen hat. bei 7zip wird das zwar nicht vorkommen, aber es kann ja bei einer anderren exe sein, die man mal irgendwann aufruft.

    zum testen hab eich einfahc mal die 7zip datei mit 2 Anführungszeichen aufgerufen. odch da bekam ich auch wieder einen exitcode 1 zurücK:

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

    $b = RunWait(@ComSpec & ' /c ' & '"7z.exe" a -r -t7z -ssc -mmt=4 -x!*.exe "C:\Dokumente und Einstellungen\anno\Desktop\7zip\a.7z" "c:\Dokumente und Einstellungen\anno\Desktop\7zip\b"', "C:\programme\7-Zip\", @SW_HIDE)

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