Filtern und verschieben von falsch benannten Ordnern und Dateien
Hallo!
Ich habe eine Ordnersturktur mit sehr vielen Ordnern.
Jeder Ordner hat eine 5- bzw. 6-stellige Nummer - nur manche haben sich mit falschen Bezeichnungen "dazugeschummelt", zB "123456 Auto" (also Nummer und Name) oder nur Name etc
Nun sollen alle Ordner samt Unterordnern, die eine falsche Bezeichnung (keine 5- oder 6-stellige Nummer) haben, in einen anderen Ordner (Ordnername "Umbenennen") verschoben werden.
Zusätzlich
In diesen Ordnern sind Dateien, die eine 5- bzw. 6-stellige Nummer ergänzt um ein Kürzel in Form von "_xy##" haben (z.B. 123456_w01.jpg).
Auch hier gibt es Dateien mit falschen Bezeichnungen die ebenfalls in den Ordner "Umbenennen" verschoben werden sollen.
Vielen Dank für eure Rückmeldungen im Voraus!
Ich habe eine Ordnersturktur mit sehr vielen Ordnern.
Jeder Ordner hat eine 5- bzw. 6-stellige Nummer - nur manche haben sich mit falschen Bezeichnungen "dazugeschummelt", zB "123456 Auto" (also Nummer und Name) oder nur Name etc
Nun sollen alle Ordner samt Unterordnern, die eine falsche Bezeichnung (keine 5- oder 6-stellige Nummer) haben, in einen anderen Ordner (Ordnername "Umbenennen") verschoben werden.
Zusätzlich
In diesen Ordnern sind Dateien, die eine 5- bzw. 6-stellige Nummer ergänzt um ein Kürzel in Form von "_xy##" haben (z.B. 123456_w01.jpg).
Auch hier gibt es Dateien mit falschen Bezeichnungen die ebenfalls in den Ordner "Umbenennen" verschoben werden sollen.
Vielen Dank für eure Rückmeldungen im Voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 202944
Url: https://administrator.de/forum/filtern-und-verschieben-von-falsch-benannten-ordnern-und-dateien-202944.html
Ausgedruckt am: 30.01.2025 um 23:01 Uhr
2 Kommentare
Neuester Kommentar
Hallo sasi2803 und willkommen im Forum!
Das könnte etwa so gehen:
Der Batch ist "scharf geschaltet" und wird daher Ordner/Dateien löschen (aber hoffentlich vorher noch kopieren ), daher bitte nur auf Testdaten loslassen!
Grüße
bastla
Das könnte etwa so gehen:
@echo off & setlocal
set "Quelle=D:\Basis"
set "Ziel=D:\Umbenennen"
::Ordner
for /f "delims=" %%i in ('dir /s/b/ad "%Quelle%"^|sort /r') do echo %%~ni|findstr /xv "[0-9][0-9][0-9][0-9][0-9][0-9]"|findstr /xv "[0-9][0-9][0-9][0-9][0-9]">nul && call :ProcessDir "%%i"
::Dateien
for /f "delims=" %%i in ('dir /s/b/a-d "%Quelle%"^|sort /r') do echo %%~ni|findstr /xv "[0-9][0-9][0-9][0-9][0-9][0-9]_..[0-9][0-9]"|findstr /xv "[0-9][0-9][0-9][0-9][0-9]_..[0-9][0-9]">nul && call :ProcessFile "%%i"
goto :eof
:ProcessDir
set "Pfad=%~1"
call set "RelPfad=%%Pfad:%Quelle%\=%%"
echo Verschiebe %1
xcopy /e %1 "%Ziel%\%RelPfad%\">nul
rd /s /q %1
goto :eof
:ProcessFile
set "Pfad=%~dp1"
call set "RelPfad=%%Pfad:%Quelle%\=%%"
echo Verschiebe %1
xcopy %1 "%Ziel%\%RelPfad%">nul
del %1
goto :eof
Grüße
bastla