gpt4 book ai didi

powershell - Powershell: “break”似乎结束了整个程序,而不仅仅是循环?

转载 作者:行者123 更新时间:2023-12-03 00:26:04 25 4
gpt4 key购买 nike

我有这个脚本:

1..10|%{
$_
if(($_ % 3) -eq 0)
{
"wow"
break
}
}

"hello"

我期望从1到10,在遇到3时会显示“哇”,最后显示“你好”
但是实际输出是:
1
2
3
kkk

因此,“break”似乎没有破坏管道中的%{}循环,而是破坏了整个程序?如何在继续执行后续语句的同时中断循环?

谢谢。

最佳答案

ForEach-Objectforeach循环不同。如果使用后者,则所有功能均应按预期工作。

foreach ($n in (1..10)){
$n
if(($n % 3) -eq 0)
{
"wow";
break;
}
}

"hello"

输出将是
1
2
3
wow
hello

UPD:您可以阅读有关 here差异的一些有用信息。需要注意的主要是 Foreach-Object已集成到管道中,它基本上是内部带有 process块的函数。 foreach是一个语句。自然, break的行为可能有所不同。

关于powershell - Powershell: “break”似乎结束了整个程序,而不仅仅是循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30752010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com