Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Powershell中创建while循环以计数小于10到0的数字_Powershell_While Loop - Fatal编程技术网

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

如何在Powershell中创建while循环以计数小于10到0的数字,powershell,while-loop,Powershell,While Loop,我不知道while循环在Powershell中是如何工作的。我需要帮助创建一个while循环,该循环从10..0开始计算Powershell中的数字 $a -eq 10 while $a -lt 10 { $a--} 但什么也没发生。如何才能更好地进行while循环?您推荐的任何书籍或文章都可以练习这种逻辑?首先,$a-eq 10不会将$a设置为10,它会计算表达式“does$a等于10”并给出真/假值。您需要的是: $a = 10 其次,即使您将其正确设置为10,您的while循环也

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

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

但什么也没发生。如何才能更好地进行while循环?您推荐的任何书籍或文章都可以练习这种逻辑?

首先,
$a-eq 10
不会将
$a
设置为10,它会计算表达式“does
$a
等于10”并给出真/假值。您需要的是:

$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 $_; }

首先,
$a-eq 10
没有将
$a
设置为10,它计算表达式“does
$a
等于10”并给出真/假值。您需要的是:

$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很好地回答了您的问题并指出了代码和逻辑中的缺陷。我只添加这个答案作为
的简单替代,而
循环可以从10倒计时到0。PowerShell将通过执行NumberA..NumberB或在您的情况下,从起点到终点迭代数字:

10..0
如果您想对这些数字进行处理,可以从那里通过管道进入ForEach循环,例如:

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

请考虑这个答案纯粹是教育性的。< P/P> P.PaxDabLo回答了你的问题,并指出了你的代码和逻辑上的缺陷。我只添加这个答案作为
的简单替代,而
循环可以从10倒计时到0。PowerShell将通过执行NumberA..NumberB或在您的情况下,从起点到终点迭代数字:

10..0
如果您想对这些数字进行处理,可以从那里通过管道进入ForEach循环,例如:

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

请考虑纯粹的教育性。

你也可以在PuthS壳中这样循环。

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

您也可以在PowerShell中这样循环

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

@sa99如果您觉得他回答了您的问题,请将他的答案标记为已接受(在他答案左侧的上/下票数附近打勾)。@paxdiablo这太棒了!!请指出While循环中的格式是否需要以$a=0的语句开头,因为。。。。。。。然后下一步是测试($a-ge 0)中的条件,以及我们使用echo和not write host的原因,或者我们可以在{……}中同时使用这两者。如果可能,这只是出于教育原因。或者如果您可以指向在线资源/教科书。非常感谢@sa99如果您觉得他回答了您的问题,请将他的答案标记为已接受(在他答案左侧的上/下票数附近打勾)。@paxdiablo这太棒了!!请指出While循环中的格式是否需要以$a=0的语句开头,因为。。。。。。。然后下一步是测试($a-ge 0)中的条件,以及我们使用echo和not write host的原因,或者我们可以在{……}中同时使用这两者。如果可能,这只是出于教育原因。或者如果您可以指向在线资源/教科书。非常感谢!!