Question
Passer à l'itération suivante ds boucle FOREACH
- YELLOWDOG
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 7 ans 11 mois #20886
par YELLOWDOG
Passer à l'itération suivante ds boucle FOREACH a été créé 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]
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.
- YELLOWDOG
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 7 ans 11 mois #20888
par YELLOWDOG
Réponse de YELLOWDOG sur le sujet Re:Passer à l'itération suivante ds boucle FOREACH
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]
[code:1]if ($NameDspl -eq \"gesxpra5_local\"«») {continue}[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 7 ans 11 mois #20889
par Philippe
Réponse de Philippe sur le sujet Re:Passer à l'itération suivante ds boucle FOREACH
bonjour YELLOWDOG,
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 là
correction comme l'indique ton message suivant<br><br>Message édité par: 6ratgus, à: 15/10/15 15:00
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 là
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.049 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Passer à l'itération suivante ds boucle FOREACH