Token in FOR Schleife abschneiden
Hallo zusammen,
ich haben folgendes vor. Anhand einer Datei mit dem Name A100-B200-C300-D400.jpg sollen Ordner über Token erstellt werden und diese in den untersten Ordner kopiert werden. Der "-" gilt dabei als Trennzeichen.
Dies funktioniert bereits. Es wird der Ordnerpfad \A100\B200\C300\D400\ erstellt, wenn dieser nicht exisitert und die Datei in den Ordner D400 kopiert.
Nun benötige ich vom 4. Token (D400) jedoch nicht den kompletten Namen sondern nur das erste Zeichen (in diesem Fall "D")
Die Anpassung des Tokens hat nicht funktioniert, ebenso wenig habe ich es hinbekommen, das Token als Variable zu setzen und diesen zu formatieren.
Hier mein bisheriger Code:
Gibt es eine Möglichkeit bzw. Vorschläge wie ich es realisieren kann, den 4. Token "zu beschneiden"???
ich haben folgendes vor. Anhand einer Datei mit dem Name A100-B200-C300-D400.jpg sollen Ordner über Token erstellt werden und diese in den untersten Ordner kopiert werden. Der "-" gilt dabei als Trennzeichen.
Dies funktioniert bereits. Es wird der Ordnerpfad \A100\B200\C300\D400\ erstellt, wenn dieser nicht exisitert und die Datei in den Ordner D400 kopiert.
Nun benötige ich vom 4. Token (D400) jedoch nicht den kompletten Namen sondern nur das erste Zeichen (in diesem Fall "D")
Die Anpassung des Tokens hat nicht funktioniert, ebenso wenig habe ich es hinbekommen, das Token als Variable zu setzen und diesen zu formatieren.
Hier mein bisheriger Code:
@echo off
set src=Quelle
set dst=Ziel
set ext=*.jpg
for %%i in ("%src%\%ext%") do (
for /f "tokens=1,2,3,4 delims=-" %%j in ("%%~ni") do (
if not exist "%dst%\%%j\%%k\%%l\%%m" md "%dst%\%%j\%%k\%%l\%%m"
copy "%%~i" "%dst%\%%j\%%k\%%l\%%m\"
)
)
Gibt es eine Möglichkeit bzw. Vorschläge wie ich es realisieren kann, den 4. Token "zu beschneiden"???
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 524704
Url: https://administrator.de/forum/token-in-for-schleife-abschneiden-524704.html
Ausgedruckt am: 11.04.2025 um 20:04 Uhr
2 Kommentare
Neuester Kommentar
Du kannst mit verzögerter Variablenerweiterung und mit normaler Stringmanipulation arbeiten.
Ungetestet:
Steffen
Ungetestet:
@echo off
set "src=Quelle"
set "dst=Ziel"
set "ext=*.jpg"
for %%i in ("%src%\%ext%") do (
for /f "tokens=1-4 delims=-" %%j in ("%%~ni") do (
set "file=%%~i"
set "new_path=%dst%\%%j\%%k\%%l"
set "fourth=%%m"
setlocal EnableDelayedExpansion
if not exist "!new_path!\!fourth:~,1!\" md "!new_path!\!fourth:~,1!"
copy "!file!" "!new_path!\!fourth:~,1!\"
endlocal
)
)