powershell中字符串上的ForEach循环
我正在尝试从使用veeam backup备份的虚拟机列表中查找所有上次作业状态。 奇怪的是,这个循环没有转到下一个vm。以下是我的工作:powershell中字符串上的ForEach循环,powershell,Powershell,我正在尝试从使用veeam backup备份的虚拟机列表中查找所有上次作业状态。 奇怪的是,这个循环没有转到下一个vm。以下是我的工作: Add-PSSnapin VeeamPSSnapin $VMlist = "vm1, vm2" $VMlist = $VMlist.split(","); Foreach ($i in $VMlist) { foreach($Job in (Get-VBRJob)) { $Session = $Job.FindLastSession
Add-PSSnapin VeeamPSSnapin
$VMlist = "vm1, vm2"
$VMlist = $VMlist.split(",");
Foreach ($i in $VMlist) {
foreach($Job in (Get-VBRJob))
{
$Session = $Job.FindLastSession()
if(!$Session){continue;}
$Tasks = $Session.GetTaskSessions()
$Tasks | ?{$_.Name -eq $VMlist} | %{write-host $_.Name ":" $_.Status}
似乎我在for-each循环中遇到了问题,因为它卡住了,我没有得到任何输出。迭代虚拟机的最佳方式是什么
提前谢谢 您在
$Tasks
中查找的是$VMList
数组,而不是单个VM$i
,只需更改:{$\ Name-eq$i}
此外,您的VM名称将包含前导空格,请从输入字符串中删除空格“vm1,vm2”
,或在拆分()后使用
您在$Tasks
中查找的是$VMList
数组,而不是单个VM$i
,只需更改:{$\u.Name-eq$i}
此外,您的VM名称将包含前导空格,请从输入字符串中删除空格“vm1,vm2”
,或在拆分()后使用
Add-PSSnapin VeeamPSSnapin
$VMlist = "vm1,vm2"
$VMlist = $VMlist.split(",");
foreach ($i in $VMlist) {
foreach ($Job in (Get-VBRJob)) {
$Session = $Job.FindLastSession()
if (!$Session) {continue; }
$Tasks = $Session.GetTaskSessions()
$Tasks | Where-Object {$_.Name -eq $i} | ForEach-Object {Write-Host $_.Name ":" $_.Status}
}
}