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"???
Please also mark the comments that contributed to the solution of the article
Content-Key: 524704
Url: https://administrator.de/contentid/524704
Printed on: April 24, 2024 at 16:04 o'clock
2 Comments
Latest comment
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
)
)