在PowerShell中创建对象

时间:2016-03-13 12:10:44

标签: powershell object

我需要创建一个对象,每次迭代都要添加值。我所拥有的问题是我的代码逻辑。我想我必须创建另一个foreach并将New-Object psobject -Property $object放在外面...但我不知道该怎么做。

有人可以帮助我吗?

Import-Module BEMCLI  #BackupExec

$object= @{}
#For each last 15 job backups
ForEach ($i in $(Get-BEJob "FULL" | Get-BEJobHistory -FromStartTime (Get-Date).AddDays("-15") -JobType Backup))
 { 

 $object.TAPE= ($i | Get-BEJobLog | Get-BEJobLogFiles) # get Tape
 $object.START_TIME=$i.StartTime #get starttime
 $object.END_TIME=$i.EndTime #get endtime

 New-Object psobject -Property $object
 } 

$object | ft

2 个答案:

答案 0 :(得分:1)

创建另一个Array对象,并在每次迭代时将new RegExp('^.highlight.*')数据添加到其中

$object

答案 1 :(得分:0)

您拥有的foreach构造看起来像是设计用于向管道发送数据。您不仅没有尝试捕获它不会将项目发送到管道中的数据。要更改的最简单的事情是将foreach循环分配给变量

Import-Module BEMCLI  #BackupExec

#For each last 15 job backups
$objects = ForEach ($i in $(Get-BEJob "FULL" | Get-BEJobHistory -FromStartTime (Get-Date).AddDays("-15") -JobType Backup))
{ 
    $object = @{} # Wipe object for next run. 
    $object.TAPE= ($i | Get-BEJobLog | Get-BEJobLogFiles) # get Tape
    $object.START_TIME=$i.StartTime #get starttime
    $object.END_TIME=$i.EndTime #get endtime

    New-Object psobject -Property $object
} 

$objects | ft