powershell while 循环没有按预期工作

powershell while loop not working as expected

我对这个 while 循环有疑问。即使状态返回为在线,它仍然停留在 while 循环中......任何想法都会很棒 :)

$instance = "(opsworks instance id)"

$status = (Get-OPSInstance -InstanceId $instance  -Region eu-west-1).Status.Trim()
Write-Host "Initial:$status"

while($status -ne 'online' -or $status -ne 'start_failed')
{
  $status = (Get-OPSInstance -InstanceId $instance  -Region eu-west-1).Status.Trim()
  Write-Host "Next:$status!"
}

这是一个基本的布尔代数。这是因为 online 不等于 start_failed-or 运算符将检查表达式的两边,并将 return true incase 任一匹配项。

条件

($status -ne 'online' -and $status -ne 'start_failed')

将被评估为 false 当且仅当 $status 既不是 online 也不是 start_failed