LöschScript erweitern um x-Tage nicht zu löschen
Hallo zusammen,
ich habe ein kleine Herausforderung bei der ich eure Hilfe benötige.
Habe folgendes Löschscript, welches mir alle Dateien löscht , ausser die Benannten in Exclude.
Nun soll ich aber in den anderen Verzeichnissen die mit diesem Script gelöscht werden nur die Dateien löschen die älter als 30 Tage sind und die erste OrdnerStufe soll nun auch nicht gelöscht werden sondern nur alle darunter.
Habt ihr ne Idee wie ich das realisieren kann ? Hoffe ihr könnt mir weiterhelfen.
hier das derzeitige script:
ich habe ein kleine Herausforderung bei der ich eure Hilfe benötige.
Habe folgendes Löschscript, welches mir alle Dateien löscht , ausser die Benannten in Exclude.
Nun soll ich aber in den anderen Verzeichnissen die mit diesem Script gelöscht werden nur die Dateien löschen die älter als 30 Tage sind und die erste OrdnerStufe soll nun auch nicht gelöscht werden sondern nur alle darunter.
Habt ihr ne Idee wie ich das realisieren kann ? Hoffe ihr könnt mir weiterhelfen.
hier das derzeitige script:
@echo off & setlocal
set "SrcDir=D:\TestzumLoeschen"
set "Exclude="App" "Data""
del /q "%SrcDir%\*.*" 2>NUL
set "DoNotDelete="
for /f "delims=" %%d in ('dir /b /a:d "%SrcDir%"') do (
for %%e in (%Exclude%) do (
if "%%d" equ "%%~e" set "DoNotDelete=1"
)
if not defined DoNotDelete rd /s /q "%SrcDir%\%%d"
set "DoNotDelete="
)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 52401145473
Url: https://administrator.de/forum/loeschscript-erweitern-um-x-tage-nicht-zu-loeschen-52401145473.html
Ausgedruckt am: 05.02.2025 um 15:02 Uhr
3 Kommentare
Neuester Kommentar
Hier ein Powershell-Skript. Bringt dich bestimmt weiter...
# Beschreibung:
# Dieses Skript löscht Dateien, die eine bestimmte Anzahl von Tagen alt sind. Die Dateierweiterungen, das Alter sowie der Ablageort sind definierbar.
# Der Löschvorgang erstreckt sich auf alle Unterordner
# Alle Operationen werden in einem Logfile im Quellordner gespeichert
#
# Hier können Sie den Quellordner, das Alter der Dateien (in Tagen) und die Dateierweiterungen festlegen
$Source = "X:\Temp\" # Wichtig: muss mit "\" enden
$Days = 365 # Anzahl der Tage, nach denen die Dateien gelöscht werden
$ext = "*.*" # Array - erweitern mit ,".xyz"
$log = "$Source$(get-date -format yymmddHHmmss).txt"
$DateBeforeXDays = (Get-Date).AddDays(-$Days)
# Start Script
start-transcript $log
write-host "--------------------------------------------------------------------------------------"
write-host "Löschen aller Dateien ($ext) im Ordner $Source die Älter sind als $Days Tage."
write-host "--------------------------------------------------------------------------------------"
get-childitem $Source* -include $ext -recurse | where {$_.lastwritetime -lt $DateBeforeXDays -and -not $_.psiscontainer} | remove-item -force -verbose
stop-transcript
Hallo,
wie wäre es mit forfiles?
/P E:\Ordner : Pfad auf dem die Suche gestartet werden soll
/S : Bitte mit allen Unterordnern
/M *.* : Suchmaske - hier alle Dateien (ausser denen ohne Dateiendung)
/D -8 : Letztes Änderungsdatum älter als 8 Tage zum heutigen Datum
/C "cmd /c del /q @path" : Befehl der mit diesen Dateien ausgeführt werden soll (hier löschen)
wie wäre es mit forfiles?
Forfiles /P "E:\Ordner" /S /M *.* /D -8 /C "cmd /c del /q @path"
/P E:\Ordner : Pfad auf dem die Suche gestartet werden soll
/S : Bitte mit allen Unterordnern
/M *.* : Suchmaske - hier alle Dateien (ausser denen ohne Dateiendung)
/D -8 : Letztes Änderungsdatum älter als 8 Tage zum heutigen Datum
/C "cmd /c del /q @path" : Befehl der mit diesen Dateien ausgeführt werden soll (hier löschen)