deaxx84
Goto Top

Robocopy automatisches Löschen von Logs

Hallo,
ich habe hier ein Robocopy Skript , was ich nach jeder Anmeldung beim/vom User ausführen lasse.

Da hier auch ein Log separat geschrieben wird, würde ich gern das Skript so haben, dass es immer nach 5 Tagen die 4 ältesten Logs löscht und dann neue schreibt.

Hat jemand hier vielleicht eine Idee?

robocopy C:\Test23\ Z:\Test23\ /MIR /R:3 /W:4 /LOG:Z:\Logdateien\logdatei.txt

Content-ID: 1574954162

Url: https://administrator.de/contentid/1574954162

Ausgedruckt am: 13.11.2024 um 06:11 Uhr

em-pie
em-pie 01.12.2021 aktualisiert um 10:36:04 Uhr
Goto Top
Moin,

  • Robocopy via Powershell ausführen
  • die LogDatei um ein Datum ergänzen
    • 20211125_logfile.txt
    • 20211126_logfile.txt
    • 20211129_logfile.txt
    • 20211130_logfile.txt
    • 20211201_logfile.txt
  • via Powershell alle logfile ermitteln, die älter denn "aktuelles Datum - 5 Tage" und danach löschen.
    • Get-ChildItem()
    • Where-Object ($_.LastWriteTime -ge 'blabla' -and $_.Name -like '*_logfile.txt')
    • Move-Item
    • Pipen

Damit solltest du starten können face-smile

Gruß
em-pie
Nebellicht
Nebellicht 01.12.2021 aktualisiert um 10:49:42 Uhr
Goto Top
Hallo Deaxx84,
sind zwar dann ein paar Tage mehr... aber wie wäre es damit. Hier wird nix gelöscht aber immer überschrieben
(Wochentag Rhythmus). D.h. der Logdatei wird der Wochentag angehängt.


robocopy C:\Test23\ Z:\Test23\ /MIR /R:3 /W:4 /LOG:"Z:\Logdateien\$((get-date).dayofweek) logdatei.txt"
149569
149569 01.12.2021 aktualisiert um 10:58:30 Uhr
Goto Top
@echo off
set "logdir=Z:\Logdateien"  
for /f "skip=5 delims=" %%a in ('dir /b /a-d /o-d "%logdir%\*.txt"') do del "%logdir%\%%a"  
Deaxx84
Deaxx84 01.12.2021 um 11:09:48 Uhr
Goto Top
Das mit dem überschreiben habe ich schon gemacht, es geht hier eher um die Automatische Löschung der alt Logs
Deaxx84
Deaxx84 01.12.2021 um 11:12:46 Uhr
Goto Top
hier bekomme ich folgendes Ergebnis : $((get-date).dayofweek) logdatei