Question
while avec plusieurs conditions
- Burgun
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 40
- Remerciements reçus 0
il y a 15 ans 7 mois #7544
par Burgun
while avec plusieurs conditions a été créé par Burgun
Bonjour,
Je suis confronté à un problème tout simple :
Voici la partie de mon script qui me bloque
[code:1]
$Depart=Get-Date
Do
{
$ListeVMOn=Get-VM | Where-object {$_.PowerState -eq \"PoweredOn\"}
$Fin=Get-date
$Temps=$Fin-$Depart
$Minute=$Temps.Minutes
}
while (($Minute -lt 1) -or ($ListeVMOn -ne $null))
echo \"Timing Terminé\"[/code:1]
En faite, j'aimerai que ma boucle s'exécute jusqu'à que soit la variable $ListVMon soit nulle ou que la variable minute soit superieur à 1.
Mais impossible d'inclure un ou logique dans la condition de fin de la boucle. y'a t'il une syntaxe particuliere ?
Je suis confronté à un problème tout simple :
Voici la partie de mon script qui me bloque
[code:1]
$Depart=Get-Date
Do
{
$ListeVMOn=Get-VM | Where-object {$_.PowerState -eq \"PoweredOn\"}
$Fin=Get-date
$Temps=$Fin-$Depart
$Minute=$Temps.Minutes
}
while (($Minute -lt 1) -or ($ListeVMOn -ne $null))
echo \"Timing Terminé\"[/code:1]
En faite, j'aimerai que ma boucle s'exécute jusqu'à que soit la variable $ListVMon soit nulle ou que la variable minute soit superieur à 1.
Mais impossible d'inclure un ou logique dans la condition de fin de la boucle. y'a t'il une syntaxe particuliere ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 7 mois #7548
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:while avec plusieurs conditions
Salut,
bvivi57 écrit:
Sinon tu peux essayer ceci:
[code:1]
function WhileTimeout ( [int]$interval, [int]$maxTries, [scriptblock]$condition ){
# from halr9000.com/article/615
#exemple :
# PS > $condition = { IsItDoneYet }
# PS > WhileTimeout 5 24 $condition
#
$i = 0
$startTime = Get-Date
while ( &$condition ) {
$i++
if ( $i -lt $maxTries ) {
Start-Sleep -seconds $interval
} else {
Throw \"Operation exceeded timeout\"
}
}
$endTime = Get-Date
$duration = ( $endTime - $startTime ).TotalSeconds
Write-Verbose \"Operation elapsed time: $duration seconds\"
}
[/code:1]
bvivi57 écrit:
Non, elle est correcte.y'a t'il une syntaxe particuliere ?
Sinon tu peux essayer ceci:
[code:1]
function WhileTimeout ( [int]$interval, [int]$maxTries, [scriptblock]$condition ){
# from halr9000.com/article/615
#exemple :
# PS > $condition = { IsItDoneYet }
# PS > WhileTimeout 5 24 $condition
#
$i = 0
$startTime = Get-Date
while ( &$condition ) {
$i++
if ( $i -lt $maxTries ) {
Start-Sleep -seconds $interval
} else {
Throw \"Operation exceeded timeout\"
}
}
$endTime = Get-Date
$duration = ( $endTime - $startTime ).TotalSeconds
Write-Verbose \"Operation elapsed time: $duration seconds\"
}
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.036 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- while avec plusieurs conditions