通过使用这个小组的帮助,我开始了解正则表达式。
我有这个脚本,它占用了一个交换邮箱的大小,将字节大小拆分为一个数字,并将其格式化为3个小数位。
这一切都很好,我有我想要的答案,但因为我是正则表达式的新手,我想知道是否有更好的方法,因为它看起来很乱。
$size=Get-MailboxStatistics -id $user| Select itemcount,totalitemsize
$size = $size.TotalItemSize
$mbxsize=$size -replace '[.*(]',''
$mbxsize=$mbxsize -replace '\d*\s\w+\s',''
$mbxsize=$mbxsize -replace '[bytes)]',''
$mbxsize=$mbxsize -replace ',',''
$mbxsize="{0:N3}" -f ($mbxsize/1024/1024)
TIA
安迪
答案 0 :(得分:0)
您可以通过以下方式直接将totalitemsize
值转换为MB:
$size= Get-MailboxStatistics -id $user |
Select itemcount, @{n='totalitemsize';e={$_.totalitemsize.value.toMB()}}
答案 1 :(得分:0)
你可以简单地将正则表达式简化为字节数(用逗号)来表示:
-replace '.+\(([0-9,]+)\s.+','$1'
并且您可以链接替换运算符,因此您可以将整个过程简化为:
$mbxsize= $size -replace '.+\(([0-9,]+)\s.+','$1' -replace ','
$mbxsize="{0:N3}" -f ($mbxsize/1MB)