Mit Powershell Ordner überwachen

Vor kurzem wurde ich gebeten, bei der Überprüfung von Ordnern im Dateisystem zu helfen. Ziel war die Ermittlung, wann in bestimmten Unterverzeichnissen einer Dateistruktur Dateien hinzugefügt oder gelöscht werden.

Zur Erläuterung: In C:\abc liegen viele gleichartige Ordner, die alle einen „A-def“ Unterordner haben, der wiederum einen Unterordner „2012“ hat. Für alle in diesen „2012“ Ordnern gefundenen Dateien werden der Dateiname und Zeitstempel in eine CSV Datei geschrieben. Diese kann dann einfach und sehr übersichtlich mit einem Excel-Pivot ausgewertet werden.

# Resette die Ausgabe
Clear-History
Clear-Host
# Ausgabepfad der Datei
$outputpath = "c:\FoundFiles.csv"
 
# hier liegen die Ordner
cd c:\abc\
 
# warte x Sekunden bis zum ersten Lauf bzw. zwischen den Läufen.
$waitseconds = 1
# wie oft soll gecheckt werden
$runs = 1
# zähle die Läufe mit
$counter = 0
 
while($counter -le $runs){
 start-sleep -s $waitseconds
 $counter++
 # Zeitstempel
 $timestamp= get-date -uformat "%Y%m%d-%H:%M"
 
 #hole die Liste der Ordner
 $folders = gci
 
 foreach ($i in $folders){
   # prüfe in den "A-def" Ordnern, ob "2012" vorhanden ist 
   cd "$i/A-def"
        if (!(Test-Path -path "2012")){
            # no 2012 folder found
        } else {
            # lese alle Dateien ein
            $files = gci "2012"
            foreach ($j in $files){
                # Schreibe Dateiname und Zeitstempel in die Datei, überschreibe nicht.
                $i.name + "`t" + $timestamp + "`t" + $j.fullname  | out-file $outputpath -append -Width 300
            }
    }
cd c:\abc\
}
}

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website