2016-05-12 50 views
0

我一直試圖在PowerShell中創建代碼,如果時間低於特定時間,但實驗後總是會陷入無限循環,即使條件已經不滿意無限循環比較時間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。關於如何正確比較時間的任何想法?我希望它運行到特定的時間,或者我希望它運行至少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