Windows Pfadnamen mit Leerstelle
Windows Pfadnamen mit Leerstelle
am 16.01.2008 08:53:59 von Hago Ziegler
Hallo,
ich versuche mit system() eine *.exe-Datei aufzurufen.
Das klappt leider nicht, weil sich in dem Pfad dorthin eine typische
Windows-Leerstelle befindet. Fehlermeldung:
' Der Befehl "Synchredible.exe" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.'
Wenn ich es in einem anderen Verzeichnis ohne Leerstelle im Pfad teste,
funktioniert es prima.
Was kann ich also tun, dass die EXE trotz Leerstelle gefunden wird?
Gruß, Hago
Re: Windows Pfadnamen mit Leerstelle
am 16.01.2008 13:23:07 von hjp-usenet2
On 2008-01-16 07:53, Hago Ziegler wrote:
>
> Hallo,
>
> ich versuche mit system() eine *.exe-Datei aufzurufen.
> Das klappt leider nicht, weil sich in dem Pfad dorthin eine typische
> Windows-Leerstelle befindet. Fehlermeldung:
> ' Der Befehl "Synchredible.exe" ist entweder falsch geschrieben oder
> konnte nicht gefunden werden.'
>
> Wenn ich es in einem anderen Verzeichnis ohne Leerstelle im Pfad teste,
> funktioniert es prima.
>
> Was kann ich also tun, dass die EXE trotz Leerstelle gefunden wird?
Wie rufst Du system denn auf? Mit einem Parameter oder mehreren?
system("c:\\mein programm\\mit leerzeichen.exe /option parameter");
oder
system("c:\\mein programm\\mit leerzeichen.exe", "/option", "parameter");
letztere Version sollte "c:\\mein programm\\mit leerzeichen.exe" direkt
aufrufen, während erstere vermutlich den Commandinterpreter (cmd.exe
unter Windows) aufruft.
hp
Re: Windows Pfadnamen mit Leerstelle
am 16.01.2008 13:43:38 von Ervin Peters
Am Wed, 16 Jan 2008 13:23:07 +0100 schrieb Peter J. Holzer:
> On 2008-01-16 07:53, Hago Ziegler wrote:
> Wie rufst Du system denn auf? Mit einem Parameter oder mehreren?
>
> system("c:\\mein programm\\mit leerzeichen.exe /option parameter");
möglicherweise könnte auch ein
system("c:\\mein programm\\mit\ leerzeichen.exe /option parameter");
helfen
man escape-sequenzen.
ervin
Re: Windows Pfadnamen mit Leerstelle
am 16.01.2008 16:06:40 von Hago Ziegler
Peter J. Holzer schrieb:
> Wie rufst Du system denn auf? Mit einem Parameter oder mehreren?
Im Moment sieht es so aus:
system("C:/Programme/ASCOMP Software/Synchredible/Synchredible.exe");
Die Optionen und Parameter habe ich erstmal weg gelassen - das kommt dann,
wenn der Programmaufruf erstmal klappt.
Wenn ich das Verzeichnis "ASCOMP Software" umbenenne zu "ASCOMPSoftware"
(also ohne Leerzeichen), klappt alles ganz vorzüglich.
Ich kann's nur nicht so lassen, weil einige andere Programme dann nicht
mehr richtig funktionieren.
> system("c:\\mein programm\\mit leerzeichen.exe /option parameter");
> system("c:\\mein programm\\mit leerzeichen.exe", "/option",
> "parameter");
Du glaubst nicht, wie viele solche Variationen ich schon ausprobiert habe
Gruß, Hago
Re: Windows Pfadnamen mit Leerstelle
am 16.01.2008 16:16:16 von Hago Ziegler
Ervin Peters schrieb:
> system("c:\\mein programm\\mit\ leerzeichen.exe /option parameter")
das: ...m\\mit\ lee.... verstehe ich ehrlich gesagt nicht, oder ist es
ein Tippfehler?
Ansonsten, mit doppelten Backslashes habe ich's schon versucht.
Gruß, Hago
Re: Windows Pfadnamen mit Leerstelle
am 16.01.2008 16:41:03 von Ervin Peters
Am Wed, 16 Jan 2008 16:16:16 +0100 schrieb Hago Ziegler:
> Ervin Peters schrieb:
>
>
>> system("c:\\mein programm\\mit\ leerzeichen.exe /option parameter")
>
> das: ...m\\mit\ lee.... verstehe ich ehrlich gesagt nicht, oder ist
> es ein Tippfehler?
> Ansonsten, mit doppelten Backslashes habe ich's schon versucht.
>
> GruÃ, Hago
In meiner bash schreibe ich entweder:
$ dosomethingwith '~/alage/file mit leerzeichen'
oder ich schreibe:
$ dosomething with ~/ablage/file\ mit\ leerzeichen
Das escapen mit dem backslash hält die bash davon ab die leerzeichen als
parametertrenner zu interpretieren. Auf DOSen müsste das ähnlich sein.
Damit die Escapesequenzen aber von perls Stringverarbeitung nicht
ausgewertet werden müÃte dann stehen:
system('c:\\mein programm\\mit\ leerzeichen.exe /option parameter')
funktionieren könnte auch
system("'c:/mein programm/mit leerzeichen.exe' /option parameter")
ervin
Re: Windows Pfadnamen mit Leerstelle
am 16.01.2008 17:08:24 von Hago Ziegler
Ervin Peters schrieb:
> system('c:\\mein programm\\mit\ leerzeichen.exe /option parameter')
Toll, das hat geklappt!
Vielen Dank, jetzt kann's weitergehen.
Gruß, Hago