2016-05-12 48 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