Question while avec plusieurs conditions

Plus d'informations
il y a 15 ans 7 mois #7544 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 ?

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

Plus d'informations
il y a 15 ans 7 mois #7548 par Laurent Dardenne
Salut,
bvivi57 écrit:

y'a t'il une syntaxe particuliere ?

Non, elle est correcte.
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
Propulsé par Kunena