Jump to content

PS - Dateigrößen aufsummieren und human readable ausgeben


Direkt zur Lösung Gelöst von blub,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo Powershell Freunde,

 

heute möchte ich alle Textdateien in einem Pfad zählen und die Größe ermitteln.

Mein Ansatz zählen:

(get-childitem $pfad *.txt).count

Funktioniert wie ich möchte.

 

Die Größe ermitteln

get-childitem "$pfad *.txt | Measure-Object -Property length -sum | Select-Object sum

funktioniert auch, aber ich hätte gern GB angezeigt.

 

Problem:

/1GB

funktioniert nicht.

 

Habe versucht obiges Ergebnis in eine Variable des Typs [int] zu schreiben. Geht aber nicht, weil

 

"Cannot convert value "@{Sum=228259984}" to type "System.Int32". Error: "Cannot convert the "@{Sum=228259984}" value of type"

 

Kann ich die Ausgabe von select-object so umbiegen, dass ein int rauskommt mit dem ich rechnen kann?

 

Danke und Grüße

bearbeitet von italianstallion
  • Beste Lösung
Geschrieben

Hi,

 

Ich habe mir mal so einen ähnlichen Code geschrieben. Vielleicht hilft er dir weiter

 

blub

Set-StrictMode -Version "2.0"
Clear-Host

$Path="C:\temp\"

#$GroupInfos = gci -path $Path -recurse -force| Where{ $_.PSIsContainer -eq $False } | Group-Object Extension
$GroupInfos = gci -path $Path -recurse -force -file | Group-Object Extension  ##requires PS V3.0

$MyInfos = @()

ForEach ($Extension in $GroupInfos ) {
  [psobject]$MyInfo = ""|Select Extension,Count,Size
  $Size = ($Extension.Group | Measure-Object -Property "Length" -Sum).Sum/1MB
  $MyInfo.Extension = $Extension.Name
  $MyInfo.Count = $Extension.Count
  $MyInfo.Size = $Size
  $MyInfos += $MyInfo
}

 $MyInfos | Ft Extension,count,
    @{
    Label="FileSize in MB";
    Expression={"{0:0.00}" -f $($_.Size)};
    Align="Right"
   } -autosize


Geschrieben

Aha...danke Blub. Auch interesssant.

Habs mittlerweile gelöst indem ich

[int]$sumtxt = get-childitem "$pfad" *.txt | Measure-Object -Property length -sum | Select-Object -expandproperty sum

Sprich: Mit -expandproperty und dem Variablentyp int gehts...weiß zwarn icht warum, aber in erster Linie Wurscht! ;)

 

Danke

 

P.S.: Nächste Frage in nächstem Fred! ;)

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...