我有一个问题。我有一个脚本,它可以获取每个人的用户名,并在那里汇总 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 位数字。大家有什么想法吗?
答案 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 ) }