while 循环将评估条件,如果为 true 则将执行操作。只要条件评估为真,就会继续执行操作。

while(condition){
  code_block
}

以下示例创建一个从 10 倒数到 0 的循环

$i = 10
while($i -ge 0){
    $i
    $i--
}

Do -While 循环不同,在动作首次执行之前评估条件。如果初始条件的计算结果为 false,则不会执行该操作。

注意:在评估条件时,PowerShell 会将返回对象的存在视为 true。这可以以多种方式使用,但下面是监视进程的示例。此示例将生成一个记事本进程,然后只要该进程正在运行,就会睡眠当前 shell。手动关闭记事本实例时,while 条件将失败,循环将中断。

Start-Process notepad.exe
while(Get-Process notepad -ErrorAction SilentlyContinue){
  Start-Sleep -Milliseconds 500
}