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-Key: 6452993724

Url: https://administrator.de/contentid/6452993724

Printed on: May 7, 2024 at 17:05 o'clock

Member: erikro
Solution erikro Mar 21, 2023 at 15:51:46 (UTC)
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
Member: Cloudrakete
Solution Cloudrakete Mar 21, 2023 updated at 15:54:18 (UTC)
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
Member: Kraemer
Kraemer Mar 21, 2023 at 16:01:36 (UTC)
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
Member: itnirvana
itnirvana Mar 21, 2023 updated at 16:25:36 (UTC)
Goto Top
Hallo zusammen,

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

Gruss
Paul
Member: itnirvana
itnirvana Mar 21, 2023 at 16:32:32 (UTC)
Goto Top
Hallo,

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

Gesamtgröße (GB) 0

Gruss
Paul
Member: itnirvana
itnirvana Mar 21, 2023 at 16:35:57 (UTC)
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
Member: Cloudrakete
Solution Cloudrakete Mar 21, 2023 at 16:40:51 (UTC)
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  
Mitglied: 6247018886
Solution 6247018886 Mar 21, 2023 updated at 22:25:22 (UTC)
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  
Member: itnirvana
itnirvana Mar 22, 2023 at 07:59:32 (UTC)
Goto Top
Hallo zusammen,

vielen Dank. Es geht nun.

Gruss
Paul
Member: itnirvana
itnirvana Mar 23, 2023 at 08:57:52 (UTC)
Goto Top