bonsai0815
Goto Top

PowerShell-Script zum Prüfen ob Datei(en) existieren

Hallo zusammen,

ich würde mir gerne ein Script erstellen, dass in einem Verzeichnis in allen Unterordner die Existenz von Dateien prüft und würde mich über Hilfe bzw. Vorschläge freuen, wo und wie man da am besten ansetzt. Folgendes Szenario:

Es soll automatisch geprüft werden, ob in den letzten 7 Tagen von jedem einzelnen Tag mindestens 1 Datei in allen Unterordnern existiert (Sicherung von diversen Logs)
Manche Logs werden nur 1x täglich, manche alle paar Stunden gesichert.
Ich möchte nach der Prüfung dann quasi einen Bericht oder eine Auflistung von den Unterordner haben, wo das nicht der Fall ist.

Die Abfrage "Get-ChildItem -Path "E:\archivlogs" -Recurse | Select-Object Directory, Name, Creationtime | Sort-Object Directory" gibt mir ja schon mal eine Übersicht aber wie lässt es sich bewerkstelligen, das nur die Verzeichnisse angezeigt werden, wo es nicht für jeden Tag mind. 1 Datei gibt ?

Für Vorschläge oder Anreize wie man sich so ein Script erstellen kann wäre ich sehr dankbar.

Content-Key: 338442

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

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: 132895
132895 20.05.2017 aktualisiert um 15:09:42 Uhr
Goto Top
gci 'E:\Archivlogs' -Directory -Recurse | ?{$_.getfiles().count -eq 0} | fl FullName  
Bzw. wenn ich das falsch interpretiert haben sollte
gci 'E:\Archivlogs' -Directory -Recurse | ?{(gci $_.Fullname -File | ?{$_.LastWriteTime -ge (get-date).Date.AddDays(-7)} | group {$_.LastWriteTime.Day}).Count -lt 7} | fl FullName  
Gruß
Mitglied: Bonsai0815
Bonsai0815 21.05.2017 um 14:12:57 Uhr
Goto Top
Vielen Dank password, das hilft mir schon wesentlich weiter.
Allerdings sieht man so noch nicht an welchen Tagen in welchem Ordner was genau fehlt.
Für die Ausgabe würde ich mir wünschen, z.B.:

Montag, dd.mm.yyyy:

Pfad TEST1
Pfad TEST4

Donnerstag, dd.mm.yyy:

Pfad TEST3\xyz

usw., für den Zeitraum von 7 Tagen rückwirkend ab dem Tag der Ausführung der Scripts.


Ich bin/war im Glauben sowas lässt sich nur mit einem ForEach Loop realisieren, da für jedes einzelne Datum quasi eine Prüfung des kompletten Verzeichnisbaums erfolgen müsste und nur das Verzeichnis aufgelistet wird, wo der Dateicount kleiner als 1 ist.