Guten Morgen zusammen,
ich habe einen Code, der die täglichen Logdateien in ein monatliches Log zusammenschreibt. Das wird dann wiederum in ein Zip-Archiv geschoben.
Das Problem ist jetzt, dass die alten, täglichen Logs z.B. die vom April im selben SourceOrdner stehen, wie die neuen Logs vom Mai. Deswegen möchte ich, dass die täglichen Logs vom z.B. April gelöscht werden, nachdem das monatliche Log erstellt wurde.
ODER: Eine Abfrage, die die tägl. Logs des aktuellen Monats zusammenfast ind das monatliche. Damit im Ordner immer die aktuellen täglichen Logs zusammengefasst werden.
Noch zur Info: Das Script wirtd 1 Mal im Monat von einem Task ausgeführt.
Set-StrictMode -Version "2.0" Clear-Host Import-Module pscx $Source="D:\bla\bla" $Destination="D:\bla\bla\bla" #muss existieren $Level=1 $jahrmonat = "{0:yyyyMM}" -f (get-date).AddMonths(-1) #Alle Verzeichnisse $Folders=@(Get-ChildItem -Path $Source -Exclude 'Test' | Where{$_.PSISContainer -Match $true}) #sammelt die tägl. Logs in monatliche nach folgendem Muster: XXX_yyyymm ForEach ($Folder in $Folders) { $Dateiname= $Folder.Name + '_' + $jahrmonat + '.log' Add-Content -Path (Join-Path $Folder.Fullname $Dateiname) -Value (Get-Content -Path (Join-Path $Folder.Fullname 'u_ex*.log')) #das monatliche LogFile wird in ein gleichnamiges Zip-Archive gepackt ForEach ($File in Get-ChildItem -Path $Folder) { if ($File.name -notlike "u_*") { Write-Zip -path $File.Fullname -Level $Level -OutputPath (Join-Path $Destination ($Folder.Name + '.zip')) -quiet -Append} } }
Freue mich über jede Hilfe!
Vielen Dank!