aventos
Goto Top

PS .length Werte addieren

Servus

ich habe mehrere Dateigrößen per
$strA = Get-ChildItem C:\Folder\Te*.exe | Select-Object length
$strB = Get-ChildItem Get-ChildItem C:\Folder\Ba*.exe | Select-Object length

auslegesen.

Die Werte werden mir nun wenn ich beide Variablen auslese z. B. so angezeigt:
                                                                                                                                               Length
                                                                                                                                                 ------
                                                                                                                                                 32528
                                                                                                                                                 24576
Jetzt kommen mir mehrere Fragen,

1) wie kann ich erreichen, dass ich NUR die Zahl an sich, ohne dieses Length in der Variable gespeichert habe? Dann könnte ich ja mittels "+" Operator einfach addieren, oder?

2) wie kann ich ansonsten die beiden Werte addieren?

Bitte verzeiht mir dass ich ein absoluter Anfänger in Sachen Powershell bin, hab wirklich kaum Ahnung davon.

LG

Content-ID: 242363

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

Ausgedruckt am: 25.11.2024 um 15:11 Uhr

colinardo
Lösung colinardo 01.07.2014 aktualisiert um 14:20:25 Uhr
Goto Top
Moin,
kein Problem
(dir "C:\Folder\Te*.exe" | measure -Property Length -Sum).Sum + (dir "C:\Folder\Ba*.exe" | measure -Property Length -Sum).Sum
Grüße Uwe
Aventos
Aventos 01.07.2014 um 12:11:44 Uhr
Goto Top
Wow ging ja schnell und hat geklappt, super!

Gibt es eine Möglichkeit dieses Length aus der Variable rauszubekommen?

Habe nämlich noch den Speicher einer Partition ausgelesen und möchte vergleichen, dieser ist auch wie oben gezeigt formatiert

LG
colinardo
Lösung colinardo 01.07.2014 aktualisiert um 14:20:27 Uhr
Goto Top
sicher du kannst es z.B. so schreiben dann befindet sich nur der eigentliche Wert in der Variablen:
$wert1 = Get-ChildItem C:\Folder\Te*.exe | select -ExpandProperty Length
oder so:
$wert1 = (Get-ChildItem C:\Folder\Te*.exe).Length
das gilt aber nur wenn es eine einzelne Datei ist. Bei mehreren musst du sie entweder wie oben summieren, oder dann mit foreach() nacheinander durchlaufen.
Aventos
Aventos 01.07.2014 um 12:19:59 Uhr
Goto Top
Habe mich glaube ich falsch ausgedrückt,

habe zusätzlich noch den Freespace von einer Partition in GB ausgelesen, dieser wird ebenfalls in einer Variable gespeichert, allerdings auch wieder wie oben mit einem Zusatz (z. B. Partition X:\ Freespace 100GB) da bräuchte ich dann auch nur die Zahl damit ich die einfach vergleichen kann. Wurde mit gwmi win32_volume gelöst.

Hast du da eine Idee wie sich nur die Zahl speichern lässt?

LG
colinardo
Lösung colinardo 01.07.2014 aktualisiert um 14:20:16 Uhr
Goto Top
$freespace = (gwmi win32_Volume | ?{$_.Driveletter -eq "C:"}).FreeSpace
Das was du siehst ist nur in der Ansicht so formatiert. Die Speichergrößen wie KB,MB,GB direkt hinter einer Zahl werden automatisch immer zu den passenden Größen in Bytes umgewandelt. Das kannst du selbst überprüfen indem du mal 100MB in eine Powershell-Konsole eingibst und dir dann die Ausgabe anschaust:
PS C:\> 100MB
104857600