Вывод команды PowerShell обрезает десятичную часть значений с плавающей точкой

Вывод команды PowerShell обрезает десятичную часть значений с плавающей точкой

Я использую следующую команду для проверки места на удаленном сервере:

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)}}

Выводит:

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

Однако фактическое пространство: 10.5 свободно из 59.8. Как будто используется int, а не float. Кто-нибудь знает, как это изменить, чтобы отображались реальные значения float?

решение1

Нашел. Кажется, мне нужно использоватьабсвместо того, чтобыусекатьфункция.

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)}}

решение2

или Get-WmiObject -Class win32_logicalDisk -ComputerName имя-компьютера | Выберите Имя,@{n="Free";e={[($.freespace / 1GB) -as [int]}}, @{n="Общий размер";e={$.size / 1GB -как [целое])}}

Связанный контент