Jump to content

Script - Ordner liegt länger als 5 Minuten im Verzeichnis


Direkt zur Lösung Gelöst von BOfH_666,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo und Guten Morgen,

 

leider sehe ich Heute Morgen den Wald vor lauter Bäumen nicht und komme nicht wirklich weiter oder stehe völlig auf dem Schlauch.

 

Eine Applikation schreibt in einen lokalen Ordner Dateien und erstellt auch Ordner mit Inhalt. Die Dateien haben verschiedene Datei Endungen.

 

Die Ordner / Folder werden minütlich von der Applikation erstellt und in F:\foldername\" geschrieben. Liegt ein Order / Folder länger als 5 Minuten soll per Powershell Script eine Warnung ausgegeben werden "Found old Files" ! Das würde auch funktionieren wenn in den Ordnern / Foldern welche die Applikation erstellt, nicht auch Files vorhanden wären, welche älter als 5 Minuten sind. Diese sind teilweise viel älter - sind aber zwingend notwendig.

 

 

$fullPath = "F:\foldername\"
$numdays = 0
$numhours = 0
$nummins = 5



function ShowOldFiles($path, $days, $hours, $mins)
{
    $BaseDate = (Get-Date).AddDays(-$days).AddHours(-$hours).AddMinutes(-$mins)
    if (get-childitem $path -include *.* -recurse | where {$_.LastWriteTime -lt $BaseDate -and $_.psIsContainer -eq $false}) 
    {
            write-host "Found old files" -Fore Red
    }
}

ShowOldFiles $fullPath $numdays $numhours $nummins

 

Die Ordner selbst welche erzeugt werden heißen immer spool_willkürliche Nummer und nur diese sollen überwacht werden.

 

Jetzt zu meinem Problem:

 

Wenn ich hier 

-include *.* -recurse 

 

etwas ändere läuft das Script nicht mehr oder es werden wieder die älteren Dateien aus den Ordnern gefunden.  Mit -filter usw... habe ich es auch schon probiert ! 

Link zu diesem Kommentar
  • Beste Lösung

Nur um es nicht falsch verstanden zu haben: Du suchst nach Ordnern, oder?

Warum dann ...

$_.psIsContainer -eq $false

 ... ?

Und wenn ich mich nicht irre, wird die Eigenschaft "LastWriteTime" eines Ordners von der aktuellsten "LastWriteTime" der im Ordner enthaltenen Dateien bestimmt. Das hieße, wenn in dem Ordner laufend neue Dateien geschrieben werden, ändert sich auch permanent die "LastWriteTime" des Ordners.

 

Übrigens: Seit PowerShell Version 3 kennt das cmdlet Get-ChildItem die Parameter -File und -Directory, um die Suche auf Dateien oder Ordner zu beschränken. ;-) 

bearbeitet von BOfH_666
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...