Ordnerstruktur via Batch anpassen (Unterordner zusammenführen)
Hallo,
ich würde gerne eine Verzeichnsistruktur, bestehend aus über 500 Ordnern, anpassen.
Im Verzeichnis "D:\Todo\" gibt es 500 Ordner, die alle einen Unterordner "aaa" besitzen, sowie weitere Ordner jeweils. Ich würde gerne mit Hilfe eines Scripts alle jpg-Dateien aus dem Ordner "aaa" eine Ebene nach oben verschieben, vorher aber auch die Dateien im Hauptorder löschen sowie alle Unterordner, die nicht "aaa" heißen und den Ordner "aaa" danach löschen.
Ich habe schon diverse Batches durchprobiert, aber keines hat so recht funktioniert.
Für einen Tip wäre ich dankbar.
VG Hardy
ich würde gerne eine Verzeichnsistruktur, bestehend aus über 500 Ordnern, anpassen.
Im Verzeichnis "D:\Todo\" gibt es 500 Ordner, die alle einen Unterordner "aaa" besitzen, sowie weitere Ordner jeweils. Ich würde gerne mit Hilfe eines Scripts alle jpg-Dateien aus dem Ordner "aaa" eine Ebene nach oben verschieben, vorher aber auch die Dateien im Hauptorder löschen sowie alle Unterordner, die nicht "aaa" heißen und den Ordner "aaa" danach löschen.
Ich habe schon diverse Batches durchprobiert, aber keines hat so recht funktioniert.
Für einen Tip wäre ich dankbar.
VG Hardy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 201483
Url: https://administrator.de/forum/ordnerstruktur-via-batch-anpassen-unterordner-zusammenfuehren-201483.html
Ausgedruckt am: 21.04.2025 um 21:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo hardye0815!
Wenn mit
Bitte nicht mit den Originaldaten testen, da der Batch "scharf" geschaltet ist und tatsächlich Unterordner und Dateien löscht!
Grüße
bastla
Wenn mit
die Dateien im Hauptorder löschen sowie alle Unterordner, die nicht "aaa" heißen und den Ordner "aaa" danach löschen
bedeuten soll, dass es am Ende als Inhalt des Hauptordners nur noch die "jpg"-Dateien aus "aaa" geben soll, dann ungetestet etwa so:@echo off & setlocal
set "Basis=D:\Todo"
set "Quelle=aaa"
set "Typ=jpg"
for /d %%o in ("%Basis%\*") do (
echo Bearbeite "%%o"
pushd "%%o"
for /d %%u in (*) do if /i "%%~nxu" neq "%Quelle%" rd /s /q "%%u"
del /q /f "*.*"
move "%Quelle%\*.%Typ%" >nul 2>nul
rd /s /q "%Quelle%" 2>nul
popd
)
Grüße
bastla
Hallo hardye0815!
- freut mich jedenfalls ...
anzufügen, wenn Du es doch per Doppelklick startest.
Grüße
bastla
Das hat wirklich geklappt
Ich bin auch ganz überrascht Ich versuche jetzt mal den Inhalt des Scripts zu verstehen
Dabei könnte es helfen, es mit "echo on
" und direkt aus einer CMD-Shell laufen zu lassen bzw zumindest am Ende noch eine Zeilepause
Grüße
bastla