Benötige Hilfe beim Erstellen einer speziellen Batchdatei

Benötige Hilfe beim Erstellen einer speziellen Batchdatei

Ich brauche Hilfe beim Erstellen einer Batchdatei, die Protokolldateien in D:/Ordnerx auf Server:\serverx löscht. Dadurch entfällt das manuelle Bereinigen der Festplatte, um zu verhindern, dass eine Seite aufgrund von zu wenig Speicherplatz leer wird. Dateien mit der Erweiterung .txt, .trc und .phd, die älter als 5 Tage sind, müssen gelöscht werden.

Hat jemand eine Idee?

Dank im Voraus

Dan

Antwort1

Ich habe so etwas zufällig rumliegen.

forfiles -p "D:/folderx"  -s -m *.* /D -5 /C "cmd /c del @path /q

Das sind alle Dateien. Um Erweiterungen anzugeben, müssen Sie das *.*Bit ändern.

forfiles -p "D:/folderx"  -s -m *.txt /D -5 /C "cmd /c del @path /q
forfiles -p "D:/folderx"  -s -m *.trc /D -5 /C "cmd /c del @path /q
forfiles -p "D:/folderx"  -s -m *.phd /D -5 /C "cmd /c del @path /q

(Manchmal greife ich immer noch auf Old-School-Kram zurück, weil ich eine Bibliothek mit Old-School-Kram herumliegen habe, den ich wiederverwenden kann. Mit der Zeit werde ich diese Bibliothek allerdings in Powershell neu schreiben.)

Antwort2

Ich stimme anderen Kommentaren zu, dass PowerShell künftig für diese Art von Automatisierungsaufgaben verwendet werden sollte. Hier ist ein kleines Skript, das die von Ihnen beschriebene Bereinigung durchführt. Sie können PowerShell auf verschiedene Weise aus einer Batchdatei ausführen, wenn Sie dies aus irgendeinem Grund benötigen, z. B.diese Antwort. Besser noch: Führen Sie es einfach direkt aus einer geplanten Aufgabe oder einem Automatisierungstool aus.

Beispielskript:

$DIRECTORY = "D:\folderx"
$MAX_AGE_DAYS = 5
$matchedFiles = Get-ChildItem $DIRECTORY | where {$_.Extension.ToLower() -match "txt|trc|phd" -and $_.CreationTime -lt (Get-Date).AddDays(-1*$MAX_AGE_DAYS)}
$matchedFiles | Remove-Item

verwandte Informationen