Question Passer à l'itération suivante ds boucle FOREACH

Plus d'informations
il y a 8 ans 5 mois #20886 par YELLOWDOG
Bonjour,

Je rencontre un problème pour passer à l'itération suivante dans une boucle FOREACH.
J'utilise la commande {continue} mais apparemment ça ne fonctionne pas comme je voudrai, ça me sort de la boucle, alors que je devrait passer à la prochaine itération de la boucle.
En fait je test si le nom du datastore se nomme \"gesxpra5_local\", alors je passe à la prochaine itération.

Merci pour votre retour.

[code:1]ForEach ($Lign in $DatastoreList)
{
$RoundCapa = ([math]::Round($Lign.CapacityGB«»))
$RoundFreeSp = ([math]::Round($Lign.FreeSpaceGB«»))
$Percent = ([math]::Round($RoundFreeSp * 100 / $RoundCapa))
$NameDspl = $Lign.Name
Write-Host $NameDspl
if ($NameDspl = \"gesxpra5_local\"«») {continue}


#Write-Host \"Reste:\" $Percent \"%\" \"sur le datasore\" $NameDspl

if ($Percent -lt 32)
{
if ($Percent -lt 15)
{
$NagiosDescriptionCrit = $NagiosDescriptionCrit + \" Reste: \" + $Percent + \"%\" + \" sur le datasore \" + $NameDspl
# Set the status to Critical.
$NagiosStatus = \"2\"
$NagiosStatusFlagCrit = \"1\"
Write-Host \"COUCOU CRIT\"
}
else
{

$NagiosDescriptionWarn = $NagiosDescriptionWarn + \" Reste: \" + $Percent + \"%\" + \" sur le datasore \" + $NameDspl
# Set the status to Warning.
$NagiosStatus = \"1\"
$NagiosStatusFlagWarn = \"1\"
Write-Host \"COUCOU WARN\"
}
}

if ($Percent -gt 32)
{
$NagiosDescription = $NagiosDescription + \" Reste: \" + $Percent + \"%\" + \" sur le datasore \" + $NameDspl
# Set the status to OK.
$NagiosStatus = \"0\"
Write-Host \"COUCOU OK\"
}
} # end ForEach
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 5 mois #20888 par YELLOWDOG
En fait j'ai fait une erreur de code, ça fonctionne avec la ligne suivante.

[code:1]if ($NameDspl -eq \"gesxpra5_local\"«») {continue}[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 5 mois #20889 par Philippe
bonjour YELLOWDOG,

J'utilise la commande {continue} mais apparemment ça ne fonctionne pas comme je voudrai, ça me sort de la boucle, alors que je devrait passer à la prochaine itération de la boucle.



correction :
la commande continue te ramène au debut de ta boucle for, foreach ou while.

la cmdlet foreach reste simple quoi que puissance utilisé avec le pipeline

un tuto sur foreach

Laurent Dardenne à fait beaucoup de tutos ici
tu en trouvera d'autre sur internet ici ou

correction comme l'indique ton message suivant<br><br>Message édité par: 6ratgus, à: 15/10/15 15:00

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.070 secondes
Propulsé par Kunena