Ich habe ein Skript, das 3 Argumente, von denen zwei Pfade sind. Ich möchte es aus einer .bat-Datei aufrufen.direkt zitiert% ~ dp0 ignoriert Leerzeichen im Dateipfad
python myscript.py "%~dp0inputs/" "%~dp0outputs/" "foo"
Wenn ich ein Dummy-Skript aufrufen, die einfach druckt argv die obige Zeile mit, i die erwarteten Ergebnisse zu erzielen, auch für Pfade mit Leerzeichen:
myscript.py
C:\path\containing spaces\inputs/
C:\path\containing spaces\outputs/
foo
aber wenn ich diese verwenden (dh% ~ DP0 für Argument 1 mit nichts anderem zwischen den Anführungszeichen):
python myscript.py "%~dp0" "%~dp0outputs/" "foo"
dann verhält es seltsam, wenn der Pfad Leerzeichen enthält:
myscript.py
C:\path\containing spaces" C:\path\containing
spaces\outputs/ foo
Es scheint, dass die Angebote nicht richtig verarbeitet wurden - was habe ich falsch gemacht?
Es scheint, wie, wann immer Sie '% ~ dp0' die Zeichenfolge mit enden muss'/'für richtig verarbeitet werden. Was passiert, wenn Sie "% ~ dp0 /" 'übergeben? – derloopkat