数组中的所有数字四舍五入



我有一个问题。我有一个脚本,它得到每个人的用户名,并有总和的pst文件,并提出了一个表与所有用户和所有他们的pst文件的大小在GB。

$Gesamt = Get-ChildItem $Verzeichniss |Select-Object Name,@{Name='TotalSizeInGB';Expression={ (Get-ChildItem -Path $Verzeichniss$($_.Name) , $Verzeichniss$($_.Name)Archiv , $Verzeichniss$($_.Name)Outlook -Filter *$($FileType) | Measure Length -Sum).Sum /1.GB}}  | Sort-Object -Property TotalSizeInGB -Descending | Select-Object -Property Name,TotalSizeInGB -First 30

我现在的问题是pst文件的大小大约是在"."之后的10位数字。但我不知道怎么才能让它在"。"之后只有两个数字。你们有什么主意吗?

尝试使用round,就像这样

$a = 111.2226
[math]::Round($a,2)

将给你:111.22和

[math]::Round($a)

将给你:111

解决方案:

$Gesamt = Get-ChildItem $Verzeichniss |Select-Object Name,@{Name='TotalSizeInGB';Expression={ [math]::Round(((Get-ChildItem -Path $Verzeichniss$($_.Name) , $Verzeichniss$($_.Name)Archiv , $Verzeichniss$($_.Name)Outlook -Filter *$($FileType) | Measure Length -Sum).Sum /1.GB),2)}}  | Sort-Object -Property TotalSizeInGB -Descending | Select-Object -Property Name,TotalSizeInGB -First 30

修改查询。

裁判:https://devblogs.microsoft.com/scripting/powertip-use-powershell-to-round-to-specific-decimal-place/

如果这是一个显示问题,那么您可以使用字符串格式化来实现

$Gesamt = Get-ChildItem $Verzeichniss |Select-Object Name,@{Name='TotalSizeInGB';Expression={ (Get-ChildItem -Path $Verzeichniss$($_.Name) , $Verzeichniss$($_.Name)Archiv , $Verzeichniss$($_.Name)Outlook -Filter *$($FileType) | Measure Length -Sum).Sum /1.GB}}  | Sort-Object -Property TotalSizeInGB -Descending | Select-Object -Property Name,TotalSizeInGB -First 30

使用指定数字的格式字符串输出结果

$Gesamt | ForEach-Object { Write-Output ( 'Name: {0}; Total Size(GB): {1:F2}' -f $_.Name, $_.TotalSizeInGB ) } 

最新更新