fhoech hat geschrieben:Ja, das funktioniert, wenn die übergebenen Parameter entweder keine Quotes enthalten, oder das letzte Zeichen innerhalb der Quotes kein Backslash ist, aber gequotet wird da nichts. Man muss immer selbst quoten, aber nur bei Parametern die Leerzeichen oder &<>() enthalten, sonst kann man die Quotes auch weglassen (und deshalb funktioniert auch %1, da bei der Übergabe von C:\ ja weder Quotes noch Leerzeichen vorhanden sind).
Die Lösung mit strip('"') scheint mir immer noch am saubersten.
Will nich wütend reagieren, aber du irrst dich.
in %~1 wird durch das ~ das Quoting entfernt
Drag'n Drop fügt automatisch'n " um die gezogene Datei/Verzeichnis herum. Deswegen gehts mit %~1 nicht allein, ein "" muss herum. Aber wenn du nur %1 nimmst gehts mit jedem Verzeichnis ohne Probleme, egal ob da 1000 Leerzeichen oder sonstwas drinsteckt.
(Und komischerweise funktioniert mit %1 C:\ ohne Probleme, mit "%~1" klappt C:\ nicht.)
Edit: Nochmal nachgesehen... Wenn man nur den Ausdruck %1 verwendet, quotet es nur, wenn es nötig ist (Leerzeichen, Spezialzeichen, usw)... ansonsten wird's nich gemacht. Deswegen klappts mit %1, wenn man nur das Laufwerk draufzieht... Weil dann nur der Ausdruck test.py C:\ ausgeführt wird, nicht test.py "C:"