halo7one
Goto Top

start (wait) mit leerzeichen in dateiname und parameter

Problem mit dem Aufruf einer Datei per start (/wait) und Leerzeichen sowohl in Dateiname, als auch in einem Parameter:

Hi @ all,

ich habe folgendes feststellen müssen:

Wenn ich eine Datei unter oben genannten Umständen öffnen will, dann gibt es Probleme mit den Leerzeichen im Pfad (die Leerzeichen werden außer Kraft gesetzt bzw. falsch interpretiert!?):
:: Dies geht nicht (es wird nur "C:\irgend" als Pfad erkannt) ::  
start /wait "" "C:\irgend was\teste etwas.bat" param1 "param2 param2"  

:: Wenn der Dateiname allerdings keine Leerzeichen enthält (ich brauche keine " ) oder ich kein start benutze geht es ::  
start /wait C:\irgendwas\test.bat param1 "param2 param2"  

"C:\irgend was\teste etwas.bat" param1 "param2 param2"  

Da ich auf das Ende des Programms warten will, muss ich start benutzen, weshalb die 2. funktionierende Methode nicht in Frage kommt.

Kann mir jemand sagen, was denn genau falsch interpretiert wird, also warum nur "C:\irgend" als Pfad erkannt wird bzw. die Anführungszeichen des Pfads "außer Kraft gesetzt werden"?

Ich kenne zwar die 8.3-Namen (C:\irgen~1\teste~1.bat), doch ich würde diese Lösung nur ungern in betracht ziehen. Gibt es nicht noch eine andere Methode?

Ich hoffe euch fällt was ein ;)

halo7one

Content-Key: 94011

Url: https://administrator.de/contentid/94011

Printed on: April 19, 2024 at 03:04 o'clock

Member: bastla
bastla Aug 09, 2008 at 09:47:39 (UTC)
Goto Top
Hallo halo7one!

Auf die Schnelle hätte ich diesen Workaround anzubieten:
start /wait "" /D"C:\irgend was" "teste etwas.bat" param1 "param2 param2"  
[Edit] Gegen den Nebeneffekt, dass der Schalter "/D" einem "cd /d" entspricht, fiele mir allerdings nur ein, das aktuelle Verzeichnis (falls überhaupt im aufgerufenen Batch benötigt) als weiteren Parameter "%cd%" zu übergeben ... [/Edit]

Grüße
bastla
Member: miniversum
miniversum Aug 09, 2008 at 12:21:20 (UTC)
Goto Top
Mir würden noch folgende Möglichkeiten einfallen die Du ausprobieren könntest:
start /wait "" C:\"irgend was\teste etwas".bat param1 "param2 param2"  
start /wait "" C:\"irgend was"\"teste etwas".bat param1 "param2 param2"  
Member: halo7one
halo7one Aug 09, 2008 at 13:04:31 (UTC)
Goto Top
Danke euch beiden!

@bastla: deine Version funktioniert wunderbar (den schalter /d kannte ich noch nicht bei start ;)
Vielen Dank für die schnelle Lösung!

@miniversum: die Anführungszeichen im Pfad anders zu setzten zeigt leider keine Wirkung, was ich auch schon ausprobiert hatte. Trotzdem thx.

Und wieder ein Problem gelöst face-smile
Die Lösung ist bastlas Version!

MfG,
halo7one