我遵循了网络上的不同帖子来解决此问题,但我的代码仍然返回单个元素而不是数组。我的代码如下:
Add-PSSnapin -Name VeeamPSSnapIn -WarningAction SilentlyContinue
$sessionVMSummary = @()
$bkJobs = get-vbrjob | foreach {
$session = $_.findlastsession()
if (($session -ne $NULL) -and ($_.isScheduleEnabled -eq $TRUE)) {
# Get session details
$sessionDocument = New-Object PSObject -Property @{
"Name" = $session.JobName
"Result" = $session.Result.toString()
"ObjectStatus" = @()
}
[Veeam.Backup.Core.CBackupTaskSession]::GetByJobSession($session.id) | foreach {
$Info = New-Object PSObject -Property @{
"Start Time" = $_.Progress.StartTime
"End Time" = $_.Progress.StopTime
"Duration" = $_.Progress.Duration
}
$sessionDocument.ObjectStatus += $Info
}
$sessionVMSummary += $sessionDocument
}
}
return $sessionVMSummary
问题 1:如何使 $sessionVMSummary 返回包含 1 个元素的数组? 问题2:从语法的角度来看,如何使我的代码更加高效?
谢谢
最佳答案
使用逗号运算符将数组包装在另一个数组中,例如:
return ,$sessionVMSummary
关于arrays - powershell 返回 1 个单个元素而不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24462880/