Die Ausgabe des PowerShell-Befehls schneidet die Dezimalstellen von Float-Werten ab.

Die Ausgabe des PowerShell-Befehls schneidet die Dezimalstellen von Float-Werten ab.

Ich verwende den folgenden Befehl, um den Speicherplatz auf dem Remote-Server zu überprüfen:

Get-WmiObject -Class win32_logicalDisk -ComputerName computer-name | Select Name,@{n="Free";e={[math]::trun
cate($_.freespace / 1GB)}}, @{n="Total Size";e={[math]::truncate($_.size / 1GB)}}

Es gibt aus:

Name Free Total Size
---- ---- ----------
C:     13         59
D:      0          0

Der tatsächliche Speicherplatz beträgt jedoch: 10,5 frei von 59,8. Es ist, als würde int verwendet, nicht float. Weiß jemand, wie ich das ändern kann, um die echten Float-Werte anzuzeigen?

Antwort1

Habe es gefunden. Es scheint, ich muss verwendenAbsanstatt derkürzenFunktion.

Get-WmiObject -Class win32_logicalDisk -ComputerName computer-name | Select Name,@{n="Free";e={[math]::abs(
$_.freespace / 1GB)}}, @{n="Total Size";e={[math]::abs($_.size / 1GB)}}

Antwort2

oder Get-WmiObject -Class win32_logicalDisk -ComputerName Computername | Name auswählen,@{n="Free";e={[($.freespace / 1GB) -as [int]}}, @{n="Gesamtgröße";e={$.size / 1GB -as [int])}}

verwandte Informationen