PowerShell - 运行 设定时间前 5 分钟的脚本
PowerShell - Run script 5 minutes before set time
我正在寻找 运行 比较两个不同时间集的脚本。脚本应该只运行在设定时间前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
Get-Date
cmdlet 时,return 值变为 String
,如果您未指定任何格式,则 return 值为一个 DateTime
对象。在不将输出格式化为 String
的情况下,您可以对 DateTime
对象执行一些操作,例如加法或减法。请务必从要比较的 String
创建另一个 DateTime
对象(在本例中为 $Time2
。)。
$CurrentTime = Get-Date
$Time2 = Get-Date -Date "2020-10-05 13:20:00"
但是,由于 $CurrentTime
对象将信息保持在毫秒级别,因此很少可能使用 equals
运算符比较这两个对象。我会做的是,我会选择一个比较 window,例如 1 分钟,然后检查这两个对象是否彼此相似 1 分钟 window。在这种情况下,它可以像 $CurrentTime
在 window 中比 $Time2
少 5 或 6 分钟。然后脚本应该包含类似的东西:
if($CurrentTime.AddMinutes(6) -gt $Time2 && $CurrentTime.AddMinutes(5) -lt $Time2){
Write-Host "Time match"
}else{
Write-Host "Time does not match"
}
您可以将 window 缩小到秒级,然后改为说如下内容。
if($CurrentTime.AddSeconds(360) -gt $Time2 && $CurrentTime.AddSeconds(330) -lt $Time2){
Write-Host "Time match"
}else{
Write-Host "Time does not match"
}
如果这对你有帮助,请告诉我!
我正在寻找 运行 比较两个不同时间集的脚本。脚本应该只运行在设定时间前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
Get-Date
cmdlet 时,return 值变为 String
,如果您未指定任何格式,则 return 值为一个 DateTime
对象。在不将输出格式化为 String
的情况下,您可以对 DateTime
对象执行一些操作,例如加法或减法。请务必从要比较的 String
创建另一个 DateTime
对象(在本例中为 $Time2
。)。
$CurrentTime = Get-Date
$Time2 = Get-Date -Date "2020-10-05 13:20:00"
但是,由于 $CurrentTime
对象将信息保持在毫秒级别,因此很少可能使用 equals
运算符比较这两个对象。我会做的是,我会选择一个比较 window,例如 1 分钟,然后检查这两个对象是否彼此相似 1 分钟 window。在这种情况下,它可以像 $CurrentTime
在 window 中比 $Time2
少 5 或 6 分钟。然后脚本应该包含类似的东西:
if($CurrentTime.AddMinutes(6) -gt $Time2 && $CurrentTime.AddMinutes(5) -lt $Time2){
Write-Host "Time match"
}else{
Write-Host "Time does not match"
}
您可以将 window 缩小到秒级,然后改为说如下内容。
if($CurrentTime.AddSeconds(360) -gt $Time2 && $CurrentTime.AddSeconds(330) -lt $Time2){
Write-Host "Time match"
}else{
Write-Host "Time does not match"
}
如果这对你有帮助,请告诉我!