Fid*_*eak 4 powershell powershell-3.0
我正在尝试实现一个中断,所以当我得到结果xxxxx次时我不必继续循环.
$baseFileCsvContents | ForEach-Object {
# Do stuff
$fileToBeMergedCsvContents | ForEach-Object {
If ($_.SamAccountName -eq $baseSameAccountName) {
# Do something
break
}
# Stop doing stuff in this For Loop
}
# Continue doing stuff in this For Loop
}
Run Code Online (Sandbox Code Playgroud)
问题是,break正在退出两个ForEach-Object
循环,我只想让它退出内循环.我尝试过读取和设置标志:outer
,但是我得到的只是语法错误.
有人知道怎么做吗?
小智 5
您将无法使用ForEach-Object的命名循环,但可以使用ForEach关键字来执行此操作,如下所示:
$OuterLoop = 1..10
$InnerLoop = 25..50
$OuterLoop | ForEach-Object {
Write-Verbose "[OuterLoop] $($_)" -Verbose
:inner
ForEach ($Item in $InnerLoop) {
Write-Verbose "[InnerLoop] $($Item)" -Verbose
If ($Item -eq 30) {
Write-Warning 'BREAKING INNER LOOP!'
BREAK inner
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在每当它在每个内环上达到30时,它将突破到外环并继续.
归档时间: |
|
查看次数: |
3202 次 |
最近记录: |