itnirvana
Goto Top

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:

# 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
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

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

erikro
Lösung erikro 21.03.2023 um 16:51:46 Uhr
Goto Top
Moin,

statt Zeile 21:

$files = get-childitem $Source\* -include $ext -recurse | where {$_.lastwritetime -lt $DateBeforeXDays -and -not $_.psiscontainer}
write-output "Liste der Dateien"  
$files
write-output "Gesamtgröße in MB"  
($files | measure-object length -sum).sum/1024/1024

hth

Erik
Cloudrakete
Lösung Cloudrakete 21.03.2023 aktualisiert um 16:54:18 Uhr
Goto Top
# 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 face-sad
Kraemer
Kraemer 21.03.2023 um 17:01:36 Uhr
Goto Top
Edit: Da war einer schneller als ich face-sad

macht nichts. Dafür habe ich was anderes dazu gelernt. Das /1GB kannte ich noch nicht face-smile
itnirvana
itnirvana 21.03.2023 aktualisiert um 17:25:36 Uhr
Goto Top
Hallo zusammen,

danke ich teste es gleich morgen face-smile.. Vielleicht weiss noch wer , Anzahl aller Dateien ?

Gruss
Paul
itnirvana
itnirvana 21.03.2023 um 17:32:32 Uhr
Goto Top
Hallo,

leider zeigt es bei beiden nie die Grösse an:

Gesamtgröße (GB) 0

Gruss
Paul
itnirvana
itnirvana 21.03.2023 um 17:35:57 Uhr
Goto Top
Nun gehts :;) Hatte eine Datei zuwenige geändert face-smile
Danke vielmals...
Falls ihr noch wisst . Wie man Anzahl Dateien noch als Ergebnis bekommt

Gruss
Paul
Cloudrakete
Lösung Cloudrakete 21.03.2023 um 17:40:51 Uhr
Goto Top
Zitat von @itnirvana:

Nun gehts :;) Hatte eine Datei zuwenige geändert face-smile
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  
6247018886
Lösung 6247018886 21.03.2023 aktualisiert um 23:25:22 Uhr
Goto Top
Zitat von @Cloudrakete:
Hi wieder mit "Measure-Object"
Ü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  
itnirvana
itnirvana 22.03.2023 um 08:59:32 Uhr
Goto Top
Hallo zusammen,

vielen Dank. Es geht nun.

Gruss
Paul
itnirvana
itnirvana 23.03.2023 um 09:57:52 Uhr
Goto Top