ändern der set
Syntax von ...:
set yourFolderPath="n:\xxxx\xxxx\%xxxx%"
... auf den folgenden (in der Regel):
set "yourFolderPath=n:\xxxx\xxxx\%xxxx%"
So die Anführungszeichen sind nicht mehr Teil des Wertes. Wie Sie es in Ihrer Frage haben, erhält die for /R
Schleife (for /R "%yourFolderPath%"
) einen Root-Pfad wie for /R ""n:\xxxx\xxxx\%xxxx%""
, so dass es "übernotiert" ist. Dies stellt insbesondere dann ein Problem dar, wenn in dem Variablenwert Leerstellen und/oder Sonderzeichen enthalten sind.
Die veränderte set
Syntax noch einen weiteren Vorteil erhalten hat: Stellen Sie sich vor Sie eine Variable haben einen Verzeichnispfad und eine andere, die eine Dateinamen hält, mit der Syntax aus Ihrer Frage:
set PDIR="D:\Data"
set FILE="file.ext"
Jetzt uns lassen verketten diese Werte:
echo unquoted: %PDIR%\%FILE%
echo quoted: "%PDIR%\%FILE%"
Die zurückgegebenen Zeilen waren:
unquoted: "D:\Data"\"file.ext"
quoted: ""D:\Data"\"file.ext""
Sie können sehen, dass es einige beunruhigende Zitate gibt. Lassen Sie uns nun die geänderte Syntax:
set "PDIR=D:\Data"
set "FILE=file.ext"
echo unquoted: %PDIR%\%FILE%
echo quoted: "%PDIR%\%FILE%"
So die zurückgegebenen Zeilen waren:
unquoted: D:\Data\file.ext
quoted: "D:\Data\file.ext"
So gibt es nicht mehr störend Zitate.
Beachten Sie, dass die geänderte Syntax funktioniert nur mit command extensions enabled, aber dies ist die Standardeinstellung für die Windows-Eingabeaufforderung cmd
sowieso.
@aschipfl bitte überprüfen Sie meine Zusatzfrage, wenn Sie die Antwort kennen. (Kann alle 90 Minuten posten, aber brauche jetzt Hilfe.) – Denis
Bitte * nie * verschiedene Fragen zu bestehenden Frage-Posts hinzufügen, da dies alle aktuellen Antworten unvollständig oder sogar veraltet macht! Schreiben Sie sie immer als * neue Frage *! Wie auch immer, es gibt keine schnelle Antwort für die neue Ausgabe, wie es für den ursprünglichen Post gab; Sie müssen genau definieren, wie der BLABLA-Teil extrahiert werden kann, und Sie müssen einige eigene Anstrengungen zeigen. es gibt bereits viele Posts für eine [ähnliche Aufgabe] (http://stackoverflow.com/search?q=%5Batch-file%5D+file+rename) ... – aschipfl
@aschipfl Ok, ich werde nicht) – Denis