2016-05-12 8 views
0

PowerShellでコードを作成しようとしましたが、時間が特定の時間を下回ると実行されますが、実験の結果、条件が既に満たされていなくても実行される無限ループここTime Powershellを比較する際の無限ループ

は私のコードです:

$a = Get-Date 
Write-Host $a 
[datetime]$time = "05/12/2016 1:57:00 AM" 

DO 
{ 
    if($a -gt $time) {break} 
    Write-Host "not yet time" 
    if($a -gt $time) {break} 
}while($a -le $time) 
CLS 
Write-Host "done" 

しかし、それはまだ、すでにさえ1時59分AMに実行されています。時間を適切に比較する方法に関するアイディア私はそれが特定の時間まで実行するか、少なくとも2時間稼働させたいと思っています。

答えて

2

あなただけ一度Get-Dateから$aに出力を割り当てるので、更新されたことがないですし、あなたは正確に同じ比較(回3)ループを実行するたびに実行しています。

コールループ本体内Get-Dateまたは更新時間を得るために、条件:

[datetime]$time = "05/12/2016 1:57:00 AM" 

do { 
    Write-Host "not yet time" 
}while($(Get-Date) -le $time) 
cls 
Write-Host "done" 
+0

WOW私はそれを見過ごすにはあまりにも愚かだったごめんなさい。私の悪い! ありがとうございました!!! – nciacrklo

関連する問題