Question [RESOLU]Test de valeur

Plus d'informations
il y a 14 ans 3 mois #11075 par LEON
[RESOLU]Test de valeur a été créé par LEON
Bonjour,

Je souhaite tester une valeur avec trois cas possible:

Valeur > à 95
Valeur > à 80 mais inférieur à 95
Et sinon valeur est OK

[code:1]
$Percent -ge \"80\" -and -lt \"95\"
[/code:1]

Ce code ne fonctionne pas bien sur :p.

Avez vous une idée?

Merci d'avance<br><br>Message édité par: Showtime, à: 9/02/12 09:25

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

Plus d'informations
il y a 14 ans 3 mois #11077 par LEON
Réponse de LEON sur le sujet Re:Test de valeur
Je viens d'avancer un peu:

[code:1]
if ($valeur -ge \&quot;40\&quot;«»)
{
if($valeur -ge \&quot;60\&quot;«»)
{
Write-Host \&quot;60\&quot;
break
}
Write-Host \&quot;40\&quot;
}

else
{
Write-Host \&quot;OK\&quot;
}


return $valeur
[/code:1]

Maintenant j'ai un autre soucis. Si ma valeur est entre 40 et 59, ca me répond 40 puis ma valeur.
Par conter, Si ma valeur est par exemple de 70, ca m'affiche 60 mais pas la valeur. J'ai essayer avec return, puis break, mais la je suis bloqué :p.
Help plz :D

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

Plus d'informations
il y a 14 ans 3 mois #11079 par Gaga
Réponse de Gaga sur le sujet Re:Test de valeur
Salut !

Valeur &gt; à 95

Valeur &gt; à 80 mais inférieur à 95

Et sinon valeur est OK


Ci-dessous une fonction qui te retourne la criticité de ton pourcentage en fonction de tes critères. C'est à améliorer, je l'ai fait rapidement. Rajoute des contrôles, des seuils, des nouvelles valeurs ...etc...

[code:1]Function get_seuil
{
param ( [int]$pourcentage )

if ($pourcentage -ge 95) { return \&quot;critique\&quot; }
if (($pourcentage -ge 80) -and ($pourcentage -lt 95)) { return \&quot;danger\&quot;}
if (($pourcentage -ge 0) -and ($pourcentage -lt 80)) { return \&quot;OK\&quot; }

return \&quot;probleme !!\&quot;

}[/code:1]

[code:1]&gt;get_seuil -pourcentage 89
danger

&gt;get_seuil -pourcentage 95
critique

&gt;get_seuil -pourcentage 50
OK[/code:1]

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

Plus d'informations
il y a 14 ans 3 mois #11080 par LEON
Réponse de LEON sur le sujet Re:Test de valeur
merci GaGA, j'avais pas pensé à séparer ma ligne de commande en deux partie.

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

Plus d'informations
il y a 14 ans 3 mois #11101 par xyz
Réponse de xyz sur le sujet Re:Test de valeur
Quelques améliorations, la première sur le type de l'argument, un byte ne peut être négatif, et la seconde sur la validité des valeurs que l'on peut contrôler à l'aide d'un attribut :
[code:1]

Function Get-NiveauSeuil
{
param (
[ValidateRange(0,100)]
[byte]$pourcentage )

if ($pourcentage -ge 95)
{ return \&quot;critique\&quot; }
if (($pourcentage -ge 80) -and ($pourcentage -lt 95))
{ return \&quot;danger\&quot;}
if (($pourcentage -ge 0) -and ($pourcentage -lt 80))
{ return $true }

}
[/code:1]
On peut aussi écrire les tests à l'aide d'étendue, approche peut-être moins performante, mais plus lisible :
[code:1]
Function Get-NiveauSeuil
{
param (
[ValidateRange(0,100)]
[byte]$pourcentage
)

Switch ($pourcentage)
{
{$_ -ge 95} { return \&quot;critique\&quot;;break }
{80..94 -contains $_} { return \&quot;danger\&quot;;break}
{0..79 -contains $_} { write-warning $switch.current;return \&quot;Ok\&quot;}
}
}#Get-NiveauSeuil
[/code:1]
$switch.current permet d'obtenir la valeur reçue via la variable $pourcentage.

Et dernière possibilité, utiliser des énumérations pour la valeur de retour, un peu plus verbeux, mais facilite la maintenance :
[code:1]
$myEnums=@{}
$myEnums.NiveauSeuil=@(\&quot;Normal\&quot;,\&quot;Critique\&quot;,\&quot;Danger\&quot;«»)
New-Enum $myEnums

Function Get-NiveauSeuil
{
param (
[ValidateRange(0,100)]
[byte]$pourcentage
)

Switch ($pourcentage)
{
{95..100 -contains $_} { return [NiveauSeuil]::Critique;break }
{80..94 -contains $_} { return [NiveauSeuil]::«»Danger;break}
{0..79 -contains $_} { return [NiveauSeuil]::Normal}
}
}#Get-NiveauSeuil
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 12/02/12 13:14

Tutoriels PowerShell

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

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