
115129
04.11.2015, aktualisiert um 21:43:51 Uhr
Inhalt verschiedener Verzeichnisse auf min-max Dateien überwachen bzw. löschen
Guten Abend,
ich müsste nochmals eure Hilfe aufsuchen um mein Vorhaben umsetzten zu können.
Funktionalität:
Das Script soll alle Dateien innerhalb der Verzeichnisse (Zu überwachende Verzeichnisse) auf eine Min/Max-Anzahl überwachen und ggfls. löschen.
Ist z.B. die Anzahl der Dateien im Verzeichnis "Dir_01" größer 9Stück sollen die ältesten Dateien auf 2Stück reduziert bzw. gelöscht werden.
Dieser Vorgang soll auf alle Verzeichnisse angewandt werden.
"Dir_15" wäre ein Reserveplatzhalter, wenn das geht.
Als Beispiel:
Wäre jemand so lieb und würde das Dings vervollständigen?
Wie immer bin ich um jede Hilfe dankbar.
Gruß,
Blattlaus
EDIT:
Habe nochmal damit rumgespielt und bin ein Schritt weiter gekommen.
Das Script behält die 5 jüngsten Dateien bei. der Rest wird gelöscht.
Wie wird die min/max-Option eingebunden?
ich müsste nochmals eure Hilfe aufsuchen um mein Vorhaben umsetzten zu können.
Funktionalität:
Das Script soll alle Dateien innerhalb der Verzeichnisse (Zu überwachende Verzeichnisse) auf eine Min/Max-Anzahl überwachen und ggfls. löschen.
Ist z.B. die Anzahl der Dateien im Verzeichnis "Dir_01" größer 9Stück sollen die ältesten Dateien auf 2Stück reduziert bzw. gelöscht werden.
Dieser Vorgang soll auf alle Verzeichnisse angewandt werden.
"Dir_15" wäre ein Reserveplatzhalter, wenn das geht.
Als Beispiel:
@echo off
::Zu überwachende Verzeichnisse
Set "Dir_01=E:\1\1"
Set "Dir_02=E:\2\2"
Set "Dir_03=E:\3\3"
Set "Dir_04=E:\4\4"
Set "Dir_05=E:\5\5"
Set "Dir_06=E:\6\6"
Set "Dir_07=E:\7\7"
Set "Dir_08=E:\8\8"
Set "Dir_09=E:\9\9"
Set "Dir_10=E:\10\10"
Set "Dir_11=E:\11\11"
Set "Dir_12=E:\12\12"
Set "Dir_13=E:\13\13"
Set "Dir_14=E:\14\14"
Set "Dir_15="
::Minimal/Maximal enthaltene Dateien im jeweiligen Verzeichnis
SET "Dir_01_min=2"
SET "Dir_01_max=9"
SET "Dir_02_min=1"
SET "Dir_02_max=15"
SET "Dir_03_min=21"
SET "Dir_03_max=47"
SET "Dir_04_min=3"
SET "Dir_04_max=43"
SET "Dir_05_min=32"
SET "Dir_05_max=42"
SET "Dir_06_min=3"
SET "Dir_06_max=8"
SET "Dir_07_min=54"
SET "Dir_07_max=67"
SET "Dir_08_min=412"
SET "Dir_08_max=734"
SET "Dir_09_min=21"
SET "Dir_09_max=42"
SET "Dir_10_min=45"
SET "Dir_10_max=94"
SET "Dir_11_min=32"
SET "Dir_11_max=53"
SET "Dir_12_min=43"
SET "Dir_12_max=54"
SET "Dir_13_min=734"
SET "Dir_13_max=951"
SET "Dir_14_min=4"
SET "Dir_14_max=19"
SET "Dir_15_min="
SET "Dir_15_max="
::Abarbeitung
...
Wäre jemand so lieb und würde das Dings vervollständigen?
Wie immer bin ich um jede Hilfe dankbar.
Gruß,
Blattlaus
EDIT:
Habe nochmal damit rumgespielt und bin ein Schritt weiter gekommen.
Das Script behält die 5 jüngsten Dateien bei. der Rest wird gelöscht.
Wie wird die min/max-Option eingebunden?
echo off & setlocal
::Zu überwachende Verzeichnisse
Set "Dir_01=E:\1\1"
Set "Dir_02=E:\2\2"
Set "Dir_03=E:\3\3"
Set "Dir_04=E:\4\4"
Set "Dir_05=E:\5\5"
Set "Dir_06=E:\6\6"
Set "Dir_07=E:\7\7"
Set "Dir_08=E:\8\8"
Set "Dir_09=E:\9\9"
Set "Dir_10=E:\10\10"
Set "Dir_11=E:\11\11"
Set "Dir_12=E:\12\12"
Set "Dir_13=E:\13\13"
Set "Dir_14=E:\14\14"
Set "Dir_15="
::Minimal/Maximal enthaltene Dateien im jeweiligen Verzeichnis
SET "Dir_01_min=2"
SET "Dir_01_max=9"
SET "Dir_02_min=1"
SET "Dir_02_max=15"
SET "Dir_03_min=21"
SET "Dir_03_max=47"
SET "Dir_04_min=3"
SET "Dir_04_max=43"
SET "Dir_05_min=32"
SET "Dir_05_max=42"
SET "Dir_06_min=3"
SET "Dir_06_max=8"
SET "Dir_07_min=54"
SET "Dir_07_max=67"
SET "Dir_08_min=412"
SET "Dir_08_max=734"
SET "Dir_09_min=21"
SET "Dir_09_max=42"
SET "Dir_10_min=45"
SET "Dir_10_max=94"
SET "Dir_11_min=32"
SET "Dir_11_max=53"
SET "Dir_12_min=43"
SET "Dir_12_max=54"
SET "Dir_13_min=734"
SET "Dir_13_max=951"
SET "Dir_14_min=4"
SET "Dir_14_max=19"
SET "Dir_15_min="
SET "Dir_15_max="
::Abarbeitung
for /f "skip=5 delims=" %%F in ('dir %Dir_01% /B /O-D /A-D') do del "%Dir_01%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_02% /B /O-D /A-D') do del "%Dir_02%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_03% /B /O-D /A-D') do del "%Dir_03%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_04% /B /O-D /A-D') do del "%Dir_04%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_05% /B /O-D /A-D') do del "%Dir_05%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_06% /B /O-D /A-D') do del "%Dir_06%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_07% /B /O-D /A-D') do del "%Dir_07%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_08% /B /O-D /A-D') do del "%Dir_08%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_09% /B /O-D /A-D') do del "%Dir_09%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_10% /B /O-D /A-D') do del "%Dir_10%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_11% /B /O-D /A-D') do del "%Dir_11%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_12% /B /O-D /A-D') do del "%Dir_12%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_13% /B /O-D /A-D') do del "%Dir_13%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_14% /B /O-D /A-D') do del "%Dir_14%\%%F"
for /f "skip=5 delims=" %%F in ('dir %Dir_15% /B /O-D /A-D') do del "%Dir_15%\%%F"
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 287519
Url: https://administrator.de/forum/inhalt-verschiedener-verzeichnisse-auf-min-max-dateien-ueberwachen-bzw-loeschen-287519.html
Ausgedruckt am: 23.04.2025 um 14:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo BlattlausOG.
Du zählst erst die Dateien, prüfst ob max überschritten wird, falls ja skippe min und lösche den Rest.
Grüße
rubberman
Du zählst erst die Dateien, prüfst ob max überschritten wird, falls ja skippe min und lösche den Rest.
if defined Dir_01 for /f %%i in ('dir /a-d /b "%Dir_01%\*.*"^|find /c /v ""') do if %%i gtr %Dir_01_max% (
for /f "skip=%Dir_01_min% delims=" %%j in ('dir /a-d /b /o-d "%Dir_01%\*.*"') do del "%Dir_01%\%%j"
)
Grüße
rubberman