Dateien in Unterordner anhand Dateinamen mit Trennzeichen verschieben
Grüß Euch!
Ich glaub ich habe gerade eine Knopf im Kopf und stehe vor folgenden Problem:
Ordner mit hunderten Dateien mit Folgenden Aufbau: "Typ-Gruppe-Gruppe2-Inhalt.pdf (Teilweise auch mehr oder Weniger Gruppen)
Also Zb: "Audi-A4-Motor-Batterie.pdf"
Diese Datien sollen immer in den jeweiligen Ordner und Unterordner verschoben welcher in dem Beispiel wie Folgt aussieht:
"\Audi\A4\Motor\Batterie\"
Habe folgendes Script wälches eigentlich ganz gut funtkioniert, jedoch das letzte also den Ordner "Batterie" ignoriert...
Hoffe ihr habt einen Tipp für mich!
Danke und LG!
Ich glaub ich habe gerade eine Knopf im Kopf und stehe vor folgenden Problem:
Ordner mit hunderten Dateien mit Folgenden Aufbau: "Typ-Gruppe-Gruppe2-Inhalt.pdf (Teilweise auch mehr oder Weniger Gruppen)
Also Zb: "Audi-A4-Motor-Batterie.pdf"
Diese Datien sollen immer in den jeweiligen Ordner und Unterordner verschoben welcher in dem Beispiel wie Folgt aussieht:
"\Audi\A4\Motor\Batterie\"
Habe folgendes Script wälches eigentlich ganz gut funtkioniert, jedoch das letzte also den Ordner "Batterie" ignoriert...
@echo off
set Quelle=C:\Datein\
for /f "delims=" %%i in ('dir /b /a-d "%Quelle%*-*.*" 2^>nul') do call :copy "%%i"
:copy
For /f "delims=- tokens=1,2,3,4,5" %%i in (%1) do (
Set "ordner1=%%i"
Set "ordner2=%%j"
Set "ordner3=%%k"
Set "ordner4=%%l"
Set "ordner5=%%m"
)
echo. %ordner1% |find /i "."
IF %errorlevel%==0 goto :jump
echo. %ordner2% |find /i "."
IF %errorlevel%==0 goto :nr1
echo. %ordner3% |find /i "."
IF %errorlevel%==0 goto :nr2
echo. %ordner4% |find /i "."
IF %errorlevel%==0 goto :nr3
echo. %ordner5% |find /i "."
IF %errorlevel%==0 goto :nr4
:nr1
Set pfad=%ordner1%\
IF NOT exist "%pfad%" md "%pfad%"
MOVE /-Y "%~1" "%pfad%"
goto :jump
:nr2
Set pfad=%ordner1%\%ordner2%\
IF NOT exist "%pfad%" md "%pfad%"
MOVE /-Y "%~1" "%pfad%"
goto :jump
:nr3
Set pfad=%ordner1%\%ordner2%\%ordner3%\
IF NOT exist "%pfad%" md "%pfad%"
MOVE /-Y "%~1" "%pfad%"
goto :jump
:nr4
Set pfad=%ordner1%\%ordner2%\%ordner3%\%ordner4%\
IF NOT exist "%pfad%" md "%pfad%"
MOVE /-Y "%~1" "%pfad%"
goto :jump
:jump
Hoffe ihr habt einen Tipp für mich!
Danke und LG!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 240984
Url: https://administrator.de/forum/dateien-in-unterordner-anhand-dateinamen-mit-trennzeichen-verschieben-240984.html
Ausgedruckt am: 15.04.2025 um 14:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo woswasih!
Ich würde das etwa so versuchen:
Grüße
bastla
Ich würde das etwa so versuchen:
@echo off & setlocal
set "Quelle=C:\Datein"
for /f "delims=" %%i in ('dir /b /a-d "%Quelle%\*-*.*" 2^>nul') do set "Name=%%~ni" & call :ProcessFile "%%i"
goto :eof
:ProcessFile
set "Pfad=%Quelle%\%Name:-=\%"
md "%Pfad%" 2>nul
move %1 "%Pfad%\"
goto :eof
bastla