Kilépés a függvényből

Számos kilépést biztosító kulcsszavunk van PowerShellben: break, continue, return, exit, throw. Tegyük ezeket rendbe a fejlett függvények kontextusában, hogy melyik hogyan működik és mikor használhatjuk.

Nézzük ez a példaszkriptet:

function FejlettFüggény {

param(

    [Parameter(ValueFromPipeline = $true)] [int]$bemenőadat,

    [switch] $kilépelejéről,

    [switch] $kiugrikelejéről,

    [switch] $kilépvégéről

)

begin {

    Write-Host "Eleje"

    if($kilépelejéről){

        Write-Host "Elejéről kilép"

    }

    if($kiugrikelejéről){

        Write-Host "Elejéről kiugrik"

    }

    Write-Host "Eleje vége"

}

process{

    Write-Host "Közepe: $bemenőadat"

    if($bemenőadat -gt 5){

        Write-Host "Középről kilépek"

    }

 

    if($bemenőadat -gt 8){

        Write-Host "Közepéről kiugrok"

    }

    Write-Host "Közepe vége"

}

end{

    Write-Host "Vége eleje"

    if($kilépvégéről){

        Write-Host "Végéről kilép"

    }

 

    Write-Host "Vége vége"

}

}

 

1,2,6,10 | FejlettFüggény -kilépelejéről

 

Write-Host "Script vége"

Egyelőre nincs benne semmi kilépő utasítás, a futtatás eredménye így:

PS C:\> C:\Users\soost\OneDrive\PSKönyv\Kilépés.ps1

Eleje

Elejéről kilép

Eleje vége

Közepe: 1

Közepe vége

Közepe: 2

Közepe vége

Közepe: 6

Középről kilépek

Közepe vége

Közepe: 10

Középről kilépek

Közepéről kiugrok

Közepe vége

Vége eleje

Vége vége

Script vége

Elsőként próbáljuk azt elérni, hogy a szkriptben jelenleg használt -kilépelejéről kapcsoló hatására az „Eleje vége” már ne hajtódjon végre, hanem menjünk a processz blokkba a függvény közepére. Ehhez a return kulcsszót teszem be a megfelelő IF részbe (most csak a begin részt teszem ide):

begin {

    Write-Host "Eleje"

    if($kilépelejéről){

        Write-Host "Elejéről kilép"

        return

    }

    if($kiugrikelejéről){

        Write-Host "Elejéről kiugrik"

    }

    Write-Host "Eleje vége"

}

Az eredmény:

Eleje

Elejéről kilép

Közepe: 1

Közepe vége

Közepe: 2

Közepe vége

Közepe: 6

Középről kilépek

Közepe vége

Közepe: 10

Középről kilépek

Közepéről kiugrok

Közepe vége

Vége eleje

Vége vége

Script vége

        Azaz, az elejéről most tényleg kilépett és átment a közepére a vezérlés. Nézzük, hogyan tudunk az elejéről teljesen kilépni. Elsőként használjuk az exit kulcsszót:

begin {

    Write-Host "Eleje"

    if($kilépelejéről){

        Write-Host "Elejéről kilép"

        return

    }

    if($kiugrikelejéről){

        Write-Host "Elejéről kiugrik"

        exit

    }

    Write-Host "Eleje vége"

}

 A függvényhívás a szkripten belül most így néz ki:

1,2,6,10 | FejlettFüggény -kiugrikelejéről

Az eredmény:

Eleje

Elejéről kiugrik

Ugyan tényleg kiugrott a függvényből, de a szkriptből is és a „Script vége” rész sem hajtódott végre. Ez nekem túl sok, keressünk egy enyhébb kilépést biztosító parancsot! Ez pedig a break lesz:

 

 

 

 



Word To HTML Converter