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

时间:2021-02-10 07:25:17

标签: powershell

我有一个问题。我有一个脚本,它可以获取每个人的用户名,并在那里汇总 der 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 位数字。但我不知道我怎么可能让它在“.”之后只有 2 位数字。大家有什么想法吗?

2 个答案:

答案 0 :(得分:3)

尝试使用圆形,就像这样

$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/

答案 1 :(得分:0)

如果这是显示问题,那么您可以使用 string formatting 来帮助您

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