loops कैसे शक्तियों में फोरचाप पाश को तोड़ने के लिए?



powershell foreach (1)

मैं अपने Foreach लूप को तोड़ने का एक तरीका ढूंढ रहा हूं

यह मेरा कोड है

$MyArray = @("desktopstudio","controller","storefront","desktopdirector","licenseserver")

$component = "toto,blabla"

$component = $component.Split(",")

foreach ($value in $component)
{

    if ($MyArray -notcontains $value)
    {
        Write-host "Your parameter doesn't match"
        Write-host "Please use one of this parameter $MyArray"
        Break
    }

}

write-host "I'm here"

मुझे समझ में नहीं आ रहा है कि यह मेरे कोड को क्यों नहीं तोड़ रहा है, क्योंकि इसका परिणाम है जब मैं इसे निष्पादित करता हूं:

Your parameter doesn't match
Please use one of this parameter desktopstudio controller storefront desktopdirector licenseserver
I'm here

आप देख सकते हैं कि मेरे Write-Host "I'm here" निष्पादित किया जाता है, जबकि इसे नहीं करना चाहिए।


ब्रेक स्टेटमेंट का उपयोग किसी लूप या स्विच ब्लॉक से निकलने के लिए किया जाता है जो आपके मामले में यह कर रहा है। इसके बजाय, आप शायद अमान्य पैरामीटर पाया जाने पर अपनी स्क्रिप्ट के निष्पादन को रोकने के लिए बाहर निकलें कमांड का उपयोग करना चाहते हैं।

$MyArray = @("desktopstudio","controller","storefront","desktopdirector","licenseserver")

$component = "toto,blabla"

$component = $component.Split(",")

foreach ($value in $component)
{

    if ($MyArray -notcontains $value)
    {
        Write-host "Your parameter doesn't match"
        Write-host "Please use one of this parameter $MyArray"
        exit   # <--- change is here
    }

}

write-host "I'm here"

अधिक जानकारी के लिए Get-Help about_Break , Get-Help about_Break , Get-Help return भी देखें।





powershell-v4.0