loops - content - powershell array
Cómo romper el bucle Foreach en Powershell? (1)
Estoy buscando una forma de romper mi ciclo Foreach.
Este es mi código
$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"
No entiendo por qué no está rompiendo mi código, porque este es el resultado cuando lo ejecuto:
Your parameter doesn''t match
Please use one of this parameter desktopstudio controller storefront desktopdirector licenseserver
I''m here
Puedes ver que mi Write-Host "I''m here"
se ejecuta mientras no debería.
La declaración de interrupción se usa para salir de un bucle o bloque de conmutación, que es lo que está haciendo en su caso. En su lugar, probablemente desee utilizar el comando de salida para detener la ejecución de su secuencia de comandos cuando se encuentre un parámetro no válido.
$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"
Consulte también Get-Help about_Break
, Get-Help exit
, Get-Help return
para obtener más información.