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
Please also mark the comments that contributed to the solution of the article
Content-Key: 6452993724
Url: https://administrator.de/contentid/6452993724
Printed on: May 7, 2024 at 17:05 o'clock
10 Comments
Latest comment
# 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