如何在 Powershell 中创建 while 循环以将小于 10 的数字计数为 0

How can I create a while loop in Powershell to count number less than 10 up to 0

我不确定 while 循环在 Powershell 中是如何工作的。我需要帮助创建一个 while 循环,该循环从 10..0 开始计算 Powershell 中的数字。

 $a -eq 10
 while $a -lt 10
 { $a--}

但是没有任何反应。我怎样才能更好地使用 while 循环?有没有推荐的书籍或文章来练习这种逻辑?

首先,$a -eq 10 不会将 $a 设置为 10,它会计算表达式 "does $a equal ten" 并为您提供 true/false 值。您需要的是:

$a = 10

其次,即使您将其正确设置为 10,您的 while 循环也只会在小于 10 时启动,而事实并非如此。这实际上是一件 好事 因为它会 运行 很长一段时间 :-)

相反,您需要在它大于或等于零时继续。

根据该信息,您可以使用以下方法从 10 倒数到 0:

PS C:\Pax> $a = 10; while ($a -ge 0) { echo $a; $a--; }
10
9
8
7
6
5
4
3
2
1
0

您还可以使用更像 Powershell 的:

10..0 | foreach { echo $_; }

paxdiablo 很好地回答了您的问题并指出了您的代码和逻辑中的缺陷。我只是将此答案添加为 While 循环的简单替代方法,用于一些简单的事情,例如从 10 倒数到 0。PowerShell 将通过执行 NumberA..NumberB 或在您的案例:

10..0

如果您想对这些数字执行某些操作,您可以从那里通过管道进入 ForEach 循环,例如:

10..0 | ForEach{"Launch in T minus $_";start-sleep -sec 1};"Blast-off!"

请将此回答视为纯粹的教育。

您也可以在 PowerShell 中像这样循环。

PS> (10..0)|%{$_}
10
9
8
7
6
5
4
3
2
1
0