Mit Get-Childitem Dateien anzeigen älter als. Gesamtwert aller Dateien mit der Gesamtgröße angeben
Hallo zusammen,
ich passe mir eben dieses Script das Files löscht als Tage älter X .
https://www.tech-faq.net/dateien-loeschen-die-aelter-sind-als-x-tage/#go ...
So das es eben nicht löscht. Sondern mit alle Daten auflistet.
Im moment sieht es so aus:
Es ist einfach der Delete Teil entfernt. Und ich muss alle ZIP suchen. Die dann älter als sind..
im Ergebnis sieht man auch schön die "Lengt" einer jeden Datei.
Weiss wer wie ich nun das File ergänzen kann, das es mir die GEsamtgrösse aller Files anzeigt ?
Leider kann ich mit Windows Suche wie es aussieht nicht suchen. Zeige mir Files .. àlter als. Daher Powershell.
Gruss
Paul
ich passe mir eben dieses Script das Files löscht als Tage älter X .
https://www.tech-faq.net/dateien-loeschen-die-aelter-sind-als-x-tage/#go ...
So das es eben nicht löscht. Sondern mit alle Daten auflistet.
Im moment sieht es so aus:
# Autor: René Albarus - https:{{comment_single_line_double_slash:0}}
# Datum: 16. April 2019
#
# Beschreibung:
# Dieses Skript löscht Dateien, die eine bestimmte Anzahl von Tagen alt sind. Die Dateierweiterungen, das Alter sowie der Ablageort sind definierbar.
# Der Löschvorgang erstreckt sich auf alle Unterordner. Alle Operationen werden in einem Logfile im Quellordner gespeichert
# !!! Benutzung auf eigene Gefahr !!!
#
# Hier können Sie den Quellordner, das Alter der Dateien (in Tagen) und die Dateierweiterungen festlegen
$Source = "C:\" # Wichtig: muss mit "\" enden
$Days = 5 # Anzahl der Tage, nach denen die Dateien gelöscht werden
$ext = "*.txt","*.log" # Array - erweitern mit ,".xyz"
$log = "$Source$(get-date -format yymmddHHmmss).txt"
$DateBeforeXDays = (Get-Date).AddDays(-$Days)
# Start Script
start-transcript $log
write-host "--------------------------------------------------------------------------------------"
write-host "Anzeigen aller Dateien ($ext) im Ordner $Source die aelter sind als $Days Tage."
write-host "--------------------------------------------------------------------------------------"
get-childitem $Source\* -include $ext -recurse | where {$_.lastwritetime -lt $DateBeforeXDays -and -not $_.psiscontainer}
stop-transcript
Es ist einfach der Delete Teil entfernt. Und ich muss alle ZIP suchen. Die dann älter als sind..
im Ergebnis sieht man auch schön die "Lengt" einer jeden Datei.
Die Aufzeichnung wurde gestartet. Die Ausgabedatei ist "C:\232721162719.txt".
--------------------------------------------------------------------------------------
Anzeigen aller Dateien (*.zip) im Ordner C:\ die aelter sind als 5 Tage.
--------------------------------------------------------------------------------------
Verzeichnis: C:\dl2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 04.11.2022 09:52 626829913 SoftwareAG_9.7_x86-x64_20221107.zip
Leider kann ich mit Windows Suche wie es aussieht nicht suchen. Zeige mir Files .. àlter als. Daher Powershell.
Gruss
Paul
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6452993724
Url: https://administrator.de/forum/mit-get-childitem-dateien-anzeigen-aelter-als-gesamtwert-aller-dateien-mit-der-gesamtgroesse-angeben-6452993724.html
Ausgedruckt am: 19.04.2025 um 09:04 Uhr
10 Kommentare
Neuester Kommentar
# Autor: René Albarus - https:{{comment_single_line_double_slash:0}}
# Datum: 16. April 2019
#
# Beschreibung:
# Dieses Skript löscht Dateien, die eine bestimmte Anzahl von Tagen alt sind. Die Dateierweiterungen, das Alter sowie der Ablageort sind definierbar.
# Der Löschvorgang erstreckt sich auf alle Unterordner. Alle Operationen werden in einem Logfile im Quellordner gespeichert
# !!! Benutzung auf eigene Gefahr !!!
#
# Hier können Sie den Quellordner, das Alter der Dateien (in Tagen) und die Dateierweiterungen festlegen
$Source = "C:\Users\*\*" # Wichtig: muss mit "\" enden
$Days = 5 # Anzahl der Tage, nach denen die Dateien gelöscht werden
$ext = "*.txt","*.log" # Array - erweitern mit ,".xyz"
$log = "$Source$(get-date -format yymmddHHmmss).txt"
$DateBeforeXDays = (Get-Date).AddDays(-$Days)
# Start Script
start-transcript $log
write-host "--------------------------------------------------------------------------------------"
write-host "Anzeigen aller Dateien ($ext) im Ordner $Source die aelter sind als $Days Tage."
write-host "--------------------------------------------------------------------------------------"
$files = get-childitem $Source\* -include $ext -recurse | where {$_.lastwritetime -lt $DateBeforeXDays -and -not $_.psiscontainer}
$totallength = ($files | Measure-Object -Sum Length).Sum / 1GB
$files
Write-Host "Gesamtgröße (GB) $totallength" -ForegroundColor Green
stop-transcript
Edit: Da war einer schneller als ich
Zitat von @itnirvana:
Nun gehts :;) Hatte eine Datei zuwenige geändert
Danke vielmals...
Falls ihr noch wisst . Wie man Anzahl Dateien noch als Ergebnis bekommt
Gruss
Paul
Nun gehts :;) Hatte eine Datei zuwenige geändert
Danke vielmals...
Falls ihr noch wisst . Wie man Anzahl Dateien noch als Ergebnis bekommt
Gruss
Paul
Hi wieder mit "Measure-Object"
$files = get-childitem $Source\* -include $ext -recurse | where {$_.lastwritetime -lt $DateBeforeXDays -and -not $_.psiscontainer}
$totallength = ($files | Measure-Object -Sum Length).Sum / 1GB
$totalfilescount = ($files | Measure-Object).count
$files
Write-Host "Gesamtgröße (GB) $totallength ($totalfilescount Files)" -ForegroundColor Green

Überflüssig. $files.Count liefert bereits das gewünschte ...
$files = get-childitem $Source -include $ext -recurse -file | where {$_.lastwritetime -lt $DateBeforeXDays}
$totallength = "{0:F2}" -f (($files | Measure-Object -Sum Length).Sum / 1GB)
Write-Host "Gesamtgröße (GB) $totallength / Anzahl: $($files.Count)" -ForegroundColor Green