Unterverzeichnisse dynamisch leeren
Hallo liebe Forengemeinde,
ich habe Folgendes vor :
Ich habe ein Hauptverzeichnis welcher diverse Unterordner enthält :
Hauptverzeichnis\
...User1\
...User2\
...User3\
...etc
Ich will diese Ordner nun von Dateien und enthaltenen Unterordnern säubern, dabei aber eben die Ordner User1, User2... behalten.
Dateien welche in den Ordnern liegen bekomme ich bereits gelöscht nur sobald es Unterordner gibt scheitere ich.
Meine Idee wäre mir über DIR /a:d /b >ausgabedatei die Ordner einzulesen, danach ich jeden Userx Ordner zu wechseln,
da ein neues DIR command ausführen und die enthaltenen Unterordner in einer Datei speichern, diese dann auslesen
und über RD zu löschen.
Leider scheitere ich bis jetzt an der Umsetzung. Hier mal mein bisherige Lösung :
@echo on
REM Hier lösche ich alle Dateien aus den Userx Ordnern und verstecke die Batch damit sie nicht auch gelöscht wird
ATTRIB +h clean.cmd
DEL *.* /s /q
rmdir /s/q *.*
ATTRIB -h clean.cmd
REM Userx Ordner in eine datei ausgeben
dir /a:d /b >verzeichnisse.txt
REM Ordner aus Datei auslesen
REM die enthaltenen unterordner in Datei ausgeben
REM Dann sollte das löschen kommen was noch fehlt
for /f %%i in (verzeichnisse.txt) do (
cd %%i
dir /a:d /b >unterordner.txt
)
)
So die Bemerkungen hab ich für euch noch kurz für das Veständnis eingefügt.
Grüße
PickWick
pause
ich habe Folgendes vor :
Ich habe ein Hauptverzeichnis welcher diverse Unterordner enthält :
Hauptverzeichnis\
...User1\
...User2\
...User3\
...etc
Ich will diese Ordner nun von Dateien und enthaltenen Unterordnern säubern, dabei aber eben die Ordner User1, User2... behalten.
Dateien welche in den Ordnern liegen bekomme ich bereits gelöscht nur sobald es Unterordner gibt scheitere ich.
Meine Idee wäre mir über DIR /a:d /b >ausgabedatei die Ordner einzulesen, danach ich jeden Userx Ordner zu wechseln,
da ein neues DIR command ausführen und die enthaltenen Unterordner in einer Datei speichern, diese dann auslesen
und über RD zu löschen.
Leider scheitere ich bis jetzt an der Umsetzung. Hier mal mein bisherige Lösung :
@echo on
REM Hier lösche ich alle Dateien aus den Userx Ordnern und verstecke die Batch damit sie nicht auch gelöscht wird
ATTRIB +h clean.cmd
DEL *.* /s /q
rmdir /s/q *.*
ATTRIB -h clean.cmd
REM Userx Ordner in eine datei ausgeben
dir /a:d /b >verzeichnisse.txt
REM Ordner aus Datei auslesen
REM die enthaltenen unterordner in Datei ausgeben
REM Dann sollte das löschen kommen was noch fehlt
for /f %%i in (verzeichnisse.txt) do (
cd %%i
dir /a:d /b >unterordner.txt
)
)
So die Bemerkungen hab ich für euch noch kurz für das Veständnis eingefügt.
Grüße
PickWick
pause
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 98978
Url: https://administrator.de/contentid/98978
Ausgedruckt am: 26.11.2024 um 09:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo pickwick!
Die "clean.cmd" solltest Du am besten in einem anderen Ordner speichern und etwa so gestalten:
Grüße
bastla
Die "clean.cmd" solltest Du am besten in einem anderen Ordner speichern und etwa so gestalten:
@echo off & setlocal
set "Basis=D:\UserOrdnerRoot"
for /d %%i in ("%Basis%\*.*") do (
REM %%i enthält den Pfad des Userordners
REM Es reicht aus, die unmittelbar im Userordner liegenden Dateien zu loeschen, ...
del /q "%%i\*.*"
REM ... da die übrigen Dateien beim Entfernen der Unterordner ohnehin mit erfasst werden
for /d %%a in ("%%i\*.*") do rd /s /q "%%a"
)
bastla