如何从更复杂的对象中提取原始值?

时间:2012-02-13 18:12:23

标签: powershell

我在powershell中使用带有-Sum标记的Measure-Object将Exchange邮箱数据库中的多个文件大小的结果相加。此操作的结果是一个似乎只包含一个整数值的对象。

我需要将这个总和与另一个总和进行比较,但是我被告知“sum”对象没有实现“IComparable”。所以我真正需要的是获取从“Measure-Object”命令返回的该对象内的单个整数值。

示例(用于测试):

  

[PS]> $ size1 = Get-MailboxStatistics -Database Some \ Exchange \ Database | select-object {$ .TotalItemSize / 1MB} | Measure-Object -Property'$ .TotalItemSize / 1MB'-Sum |选择总和

     

[PS]> $ size2 = Get-MailboxStatistics -Database Someother \ Exchange \ Database | select-object {$ .TotalItemSize / 1MB} | Measure-Object -Property'$ .TotalItemSize / 1MB'-Sum |选择总和

不起作用:

  

echo($ size1 -lt $ size2)

2 个答案:

答案 0 :(得分:3)

    Get-MailboxStatistics -Database Some\Exchange\Database | 
 foreach {$size1 += $_.totalitemsize.value.tobytes()/1mb}

答案 1 :(得分:2)

这将返回一个GenericMeasureInfo对象,该对象具有包含实际总和的属性。试试echo ($size1.Sum -lt $size2.Sum)