微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PowerShell-在设置时间之前5分钟运行脚本

如何解决PowerShell-在设置时间之前5分钟运行脚本

比较2个不同的时间集时,我希望运行脚本。该脚本只能在设置时间之前的5分钟间隔内运行。

Example:
$CurrentTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$Time2 = "2020-10-05 13:20:00"

如何编写“仅在$ CurrentTime在$ Time2之前5分钟才运行脚本???”

if($CurrentTime ??5min less than?? $Time2){
    Write-Host "Time match"
} else {
    Write-Host "Time does not match"
}

解决方法

当您-format cmdlet时,返回值将变成Get-Date,如果您不指定任何格式,则返回值将是String对象。然后,无需将输出格式化为DateTime,就可以对String对象执行一些操作,例如加法或减法。只需确保从要比较的DateTime创建另一个DateTime对象(在本例中为String。)。

$Time2

但是,由于$CurrentTime = Get-Date $Time2 = Get-Date -Date "2020-10-05 13:20:00" 对象将信息保持到毫秒级,因此很少可以使用$CurrentTime运算符来比较这两个对象。我要做的是选择一个比较窗口(例如1分钟),然后通过1分钟窗口检查这两个对象是否彼此相似。在这种情况下,好像equals$CurrentTime短5或6分钟。然后,脚本应包含以下内容:

$Time2

您可以将窗口缩小到几秒钟,然后说类似下面的内容。

if($CurrentTime.AddMinutes(6) -gt $Time2 && $CurrentTime.AddMinutes(5) -lt $Time2){
    Write-Host "Time match"
    }else{
    Write-Host "Time does not match"
    } 

让我知道这是否对您有帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。