Batch-Datei: übergeben Sie den Parameter mit weißen Leerzeichen, um zu funktionieren

8

Ich verwende eine Batch-Datei für Backups. Ich gebe die Optionen an eine Funktion weiter, die die ausführbare Verpackung aufruft. Dies funktioniert, wenn die Parameter keine Leerzeichen enthalten. Dies ist der relevante Code:

%Vor%

Auf XP (deutsche Version)% DIRUSER% expandiert zu "Dokumente und Einstellungen"

In diesem Fall ist TARGET korrekt, aber FILES == "Dokumente" und EXCLUDE == "und", Das bedeutet, dass das Skript aufgrund der Leerzeichen in% DIRUSER% fehlschlägt.

Wie kann ich das beheben?

    
Matthias Pospiech 13.07.2011, 20:30
quelle

2 Antworten

12

Das Problem scheint Ihre Art der Zuweisung der Variablen zu sein.
Ich nehme an, du stellst die DIRUSER-Variable wie die anderen ein

%Vor%

Aber der Inhalt von DIRUSER ist dann "Dokumente und Einstellungen" , also sind die Zitate ein Teil des Inhalts.

Aber dann wird SET FILES="%DIRUSER%\Eigene Dateien\*" auf SET FILES=""Dokumente und Einstellungen"\Eigene Dateien\*" erweitert.

Sie könnten den erweiterten Stil von set verwenden.
set "var=content" Dies setzt den Inhalt von var auf content ohne Anführungszeichen und alle hinter dem letzten Zitat angefügten Leerzeichen werden ignoriert.

Also wäre dein Code

%Vor%     
jeb 14.07.2011, 00:16
quelle
3

Schalten Sie Ihre Arg-Aufrufe in der Funktion von %~1 , %~2 und %~3 bis %~f1 , %~f2 bzw. %~f3 um. Es wird den vollständig qualifizierten Pfadnamen für jedes Argument übergeben.

Weitere Informationen: Ссылка

    
Costa 13.07.2011 22:08
quelle

Tags und Links