捐血一袋救人一命

2024年3月12日 星期二

Powershell 迴圈的額外說明

Powershell 迴圈的額外說明

以下三種 Powershell 迴圈程式,先試著猜猜結果為何

Function loop1{
    1..3 | ForEach-Object{
        If ($_ -eq 2){
            Return "Y", $_
        }Else{
            Return "N", $_
        }
    }
}

loop1
Function loop2{
    For($i=1; $i -le 3; $i++){
        If ($_ -eq 2){
            Return "Y", $i
        }Else{
            Return "N", $i
        }
    }
}

loop2
Function loop3{
    ForEach($num in 1..3){
        If ($_ -eq 2){
            Return "Y", $num
        }Else{
            Return "N", $num
        }
    }
}

loop3

當你分別執行上面的程式之後,會發現
ForEach-Object{ }
會跑完每一個 Object,所以它會回傳三次!
而 For 或是 ForEach 迴圈,則是如同預期的,只會跑一次

這個 ForEach-Object { } 的用法,就很像 Python 的 yield

0 意見: