Ich habe eine Textdatei PATHS.TXT Es enthält folgende Daten, Warum zieht for/f den Dateinamen hoch?
Local RemotePath
namens
N: \ DANIEL-HP \ Benutzer \ Öffentlich
Z: \ DANIEL-HP \ Users \ Public \ Favoriten
Local RemotePath
N: \ DANIEL-HP \ Benutzer \ öffentlich
Z: \ DANIEL-HP \ Users \ Public \ Favoriten
Ich führe die folgende Batch-Datei aus, um den Pfad des gewünschten Pfades zu extrahieren.
@echo off
for /f "tokens=1 delims=" %%a in ('find ":" paths.txt') do (
echo %%a
)
pause
Das Ergebnis
---------- PATHS.TXT
N: \\DANIEL-HP\Users\Public
Z: \\DANIEL-HP\Users\Public\Favorites
N: \\DANIEL-HP\Users\Public
Z: \\DANIEL-HP\Users\Public\Favorites
Press any key to continue . . .
Die Art und Weise, die ich dieses Problem beheben, das ich, wie unten die FÜR ändern,
for /f "skip=2 tokens=1 delims=" %%a in ('find ":" paths.txt') do (echo %%a)
Und ich eine saubere gewünschte Ausgabe zu erhalten,
N: \\DANIEL-HP\Users\Public
Z: \\DANIEL-HP\Users\Public\Favorites
N: \\DANIEL-HP\Users\Public
Z: \\DANIEL-HP\Users\Public\Favorites
Press any key to continue . . .
Frage ist, was ist falsch mit meiner ersten FOR-Funktion, die es erlaubt, den Dateinamen Passthrough.
Fund haben ":"
DannyBoi
@dbenham .... Alle von Ihnen vorgeschlagenen Lösungen arbeiten perfekt außerhalb der ** for-Schleife **, aber innerhalb der Klammern '()' der for-Schleife, sie sind nicht. Bitte beachten Sie die Syntax. – DannyBoi
@DannyBoi Die speziellen Charater müssen maskiert werden, siehe Edit – jeb