Dateien sortieren und verschieben per Batch
Ich will mehrere Verzeichnisse sortieren, derzeit sieht die Struktur etwa so aus:
Nun soll das ganze ordentlich sortiert werden, sprich es soll fuer jede Dateigruppe (111, 222, ...) ein eigener Ordner erstellt werden, in den die Dateien anschliessend verschoben werden, und das ganze natuerlich automatisch. Die Dateiendung ist dabei irrelevant, die Dateien sollen nur anhand des Namens sortiert werden.
Per Hand ist das leider eine etwas langfristige Aufgabe, da es sich um mehr als 100.000 Dateien handelt.
Kann mir eventuell jemand beim basteln einer passenden Batchdatei helfen? Oder kennt jemand ein Programm mit dem das funktioniert?
- Ordner 1
- 111.001
- 111.002
- 111.003
- ...
- 222.001
- 222.002
- 222.003
- ...
Nun soll das ganze ordentlich sortiert werden, sprich es soll fuer jede Dateigruppe (111, 222, ...) ein eigener Ordner erstellt werden, in den die Dateien anschliessend verschoben werden, und das ganze natuerlich automatisch. Die Dateiendung ist dabei irrelevant, die Dateien sollen nur anhand des Namens sortiert werden.
Per Hand ist das leider eine etwas langfristige Aufgabe, da es sich um mehr als 100.000 Dateien handelt.
Kann mir eventuell jemand beim basteln einer passenden Batchdatei helfen? Oder kennt jemand ein Programm mit dem das funktioniert?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 96906
Url: https://administrator.de/contentid/96906
Ausgedruckt am: 19.11.2024 um 12:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo acid12 und willkommen im Forum!
Das sollte sich etwa so machen lassen (ungetestet):
Damit werden alle im angegebenen Startverzeichnis liegenden Unterverzeichnisse "behandelt".
Grüße
bastla
Das sollte sich etwa so machen lassen (
@echo off & setlocal
for /d %%v in ("D:\Startverzeichnis\*.*") do (
pushd "%%v"
for %%i in (*.*) do (
if not exist "%%~ni\" md "%%~ni\" && echo Ordner erstellt: %%~dpni
move "%%i" "%%~ni\"
)
popd
)
Grüße
bastla
Hallo acid12!
Mit dem Batch von oben als "Verschieben.cmd" und den Ordnern "D:\Startverzeichnis\ordner 1" und "D:\Startverzeichnis\ordner 2" sowie einigen darin enthaltenen Dateien nach dem von Dir dargestellten Muster erhalte ich folgenden Ablauf (die Zeilen 1, 15 und 21 enthalten nach dem "D:\>" die von mir getätigten Eingaben):
Zu Testzwecken könntest Du im Batch die Zeile 2 ändern auf:
Damit werden nur die Dateien des einen angegebene Ordners verschoben.
(Achtung: Der Schalter "/d" nach dem "for" ist in diesem Fall nicht erforderlich.)
Sollte das noch immer nicht klappen, kannst Du als nächsten Schritt das "echo off" in ein "echo on" ändern und dann den Batch aus der Kommandozeile starten. Durch die Anzeige jedes Befehls kannst Du dann hoffentlich erkennen, wo etwas schief läuft ...
Grüße
bastla
Koenntest du dir das vielleicht noch mal ansehen?
Habe ich mir nochmals angesehen ...Mit dem Batch von oben als "Verschieben.cmd" und den Ordnern "D:\Startverzeichnis\ordner 1" und "D:\Startverzeichnis\ordner 2" sowie einigen darin enthaltenen Dateien nach dem von Dir dargestellten Muster erhalte ich folgenden Ablauf (die Zeilen 1, 15 und 21 enthalten nach dem "D:\>" die von mir getätigten Eingaben):
D:\>dir D:\Startverzeichnis /s /b
D:\Startverzeichnis\ordner 1
D:\Startverzeichnis\ordner 2
D:\Startverzeichnis\ordner 1\111.001
D:\Startverzeichnis\ordner 1\111.002
D:\Startverzeichnis\ordner 1\111.003
D:\Startverzeichnis\ordner 1\222.001
D:\Startverzeichnis\ordner 1\222.002
D:\Startverzeichnis\ordner 2\333.001
D:\Startverzeichnis\ordner 2\333.002
D:\Startverzeichnis\ordner 2\444.001
D:\Startverzeichnis\ordner 2\444.002
D:\Startverzeichnis\ordner 2\444.003
D:\>Verschieben.cmd
Ordner erstellt: D:\Startverzeichnis\ordner 1\111
Ordner erstellt: D:\Startverzeichnis\ordner 1\222
Ordner erstellt: D:\Startverzeichnis\ordner 2\333
Ordner erstellt: D:\Startverzeichnis\ordner 2\444
D:\>dir D:\Startverzeichnis /s /b
D:\Startverzeichnis\ordner 1
D:\Startverzeichnis\ordner 2
D:\Startverzeichnis\ordner 1\111
D:\Startverzeichnis\ordner 1\222
D:\Startverzeichnis\ordner 1\111\111.001
D:\Startverzeichnis\ordner 1\111\111.002
D:\Startverzeichnis\ordner 1\111\111.003
D:\Startverzeichnis\ordner 1\222\222.001
D:\Startverzeichnis\ordner 1\222\222.002
D:\Startverzeichnis\ordner 2\333
D:\Startverzeichnis\ordner 2\444
D:\Startverzeichnis\ordner 2\333\333.001
D:\Startverzeichnis\ordner 2\333\333.002
D:\Startverzeichnis\ordner 2\444\444.001
D:\Startverzeichnis\ordner 2\444\444.002
D:\Startverzeichnis\ordner 2\444\444.003
D:\>
for %%v in ("D:\Dein Verzeichnis\Dein Ordner") do (
(Achtung: Der Schalter "/d" nach dem "for" ist in diesem Fall nicht erforderlich.)
Sollte das noch immer nicht klappen, kannst Du als nächsten Schritt das "echo off" in ein "echo on" ändern und dann den Batch aus der Kommandozeile starten. Durch die Anzeige jedes Befehls kannst Du dann hoffentlich erkennen, wo etwas schief läuft ...
Grüße
bastla
Hallo acid12!
Grüße
bastla
ok, funktioniert doch
Diese erfreuliche Tatsache könntest Du noch Wie kann ich einen Beitrag als gelöst markieren? dokumentieren ...Grüße
bastla