计算出来的属性会有帮助。一般格式如下:
@{ Name = "PropertyNameHere"; Expression = { }}
您的方案中的示例。我假设你提前定义$ objFSO。请注意,您可能有更好的方式来拉大小。
#Everything on one line!
$MyObject |
Select 'TimeCreated', 'LevelDisplayName','ID', 'Message', @{ Name = "BackupSize"; Expression = { (($objFSO.GetFolder("C:\Users\Backup").Size)/1MB) }} |
ConvertTo-HTML -Head $Header |
Out-file C:\script.htm
#### #### #### #### ####
#Alternative: Define calculated property hash(es) ahead of time
$BackupSize = @{ Name = "BackupSize"; Expression = { (($objFSO.GetFolder("C:\Users\Backup").Size)/1MB) } }
$MyObject |
Select 'TimeCreated', 'LevelDisplayName','ID', 'Message', $BackupSize |
ConvertTo-HTML -Head $Header |
Out-file C:\script.htm
又如并称总是具有值42的列,而另一个着眼于第一个项目中的事件的性能属性的值:
Get-WinEvent -LogName System -MaxEvents 5 |
Select TimeCreated, Id, @{ Name = "StaticProperty"; Expression = {42}}, @{ Name = "Property1"; Expression = {$_.Properties[0].value}}
几个示例资源:
如果你发现自己使用这些的时候,你使用PowerShell的ISE 3或更高版本,新增片段!这是迄今为止最常用的片段在我的收藏
New-IseSnippet -Title "Calculated Property" -description "Create a calculated property" -text '@{ label = ""; expression = {} }' -Author Blah -CaretOffset 12 -ErrorAction SilentlyContinue -force
干杯!