【问题标题】:Check for Time - get-date PowerShell [closed]检查时间 - 获取日期 PowerShell [关闭]
【发布时间】:2022-02-21 15:58:53
【问题描述】:

我在 PowerShell 中有一个任务,想在进程运行时检查时间。 如果它通过 8:05 am 我想停止这个过程。如何在 PowerShell 中实现这一点?

提前致谢。

$time = get-date -Format hh:mm
$time
if ($time > 8:05)
{
   Write-Output "passed 8:05 am"
   exit
}
else
{
   Write-Output "too early"
}

【问题讨论】:

  • 您是否收到任何错误消息?您的代码没有按预期工作吗?你的代码 sn-p 有什么问题?
  • 这个“任务”是在 PowerShell 中实现的,并且这段代码将成为它的一部分,还是作为作业、进程或其他东西运行?在后一种情况下,您将循环检查时间,看看它是否已经过了上午 8:05;如果有,则中止任务,否则在再次检查之前休眠一段时间。

标签: powershell time


【解决方案1】:

PowerShell 中日期格式和日期比较的问题在于,它们非常烦人。

最简单的方法是定义两个变量,一个是当前时间:

$timenow = get-date

还有一个在规定的时间:

$timecomparison = Get-Date -Hour 8 -Minute 5

那么,为了实际比较,需要使用Get-Date参数“timeofday”:

If ($timenow.TimeOfDay -lt $timecomparison.TimeOfDay) {do something}

另外,如果我错了,请纠正我,但在 Powershell 运算符中,如 >、-lt

【讨论】:

  • 感谢 Bowshock。时间采用 24 小时格式(Get-Date -Hour 8 -Minute 5),可以使用。只是好奇,是否有 PowerShell 语法可以在 12 小时内完成?
  • 请注意,当将日期/时间组件值传递给 Get-Date 时,它们会覆盖 当前 时间的那些组件。因此,如果在下午 12:34:56.789 调用 Get-Date -Hour 8 -Minute 5,则生成的 DateTime 将有一个 TimeOfDay 组件 08:05:56.7890000 — 比预期时间晚了近 57 秒。要使其恰好是上午 8:05,您必须使用 Get-Date -Hour 8 -Minute 5 -Second 0 -Millisecond 0 指定 所有 时间组件。我对另一个答案的评论显示了获得上午 8:05 的另一种方法,并且 [DateTime] '8:05 AM' 也可以工作,至少在 en-US 文化中是这样。
【解决方案2】:

您需要将“时间”变量转换为双精度格式,因为默认为字符串,并将':'替换为'.'

$time = get-date -Format hh.mm
$time.replace('.',':')
$double = [double]$time
if ($double -ge 8.05)
{
   Write-Output "passed 8:05 am"
   exit
}
else
{
   Write-Output "too early"
}

我还建议您阅读比较的语法 in powershell

【讨论】:

  • 问题中的语法错误表明作者不知道如何比较时间,因此与其对他们的错误进行直译,不如将其简化为$now = Get-Date; if ($now -ge $now.Date.AddHours(8).AddMinutes(5)) { # ...。这仍然无法处理下一个上午 8:05 发生明天的情况(因为他们没有指定任务何时开始或完成需要多长时间)。
  • 据我了解大约是上午 8 点,而不是 8 小时的代码执行时间,因此添加到当前时间是不正确的。
  • $now.Date 给出今天的午夜。午夜 + 8 小时 + 5 分钟表示今天上午 8:05。此外,如果不是用无法解析的: 替换.,您对[Double] 的转换将起作用。将当前时间与[Double] 进行比较的另一种方法是(Get-Date).TimeOfDay.TotalHours -ge 8.05
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
相关资源
最近更新 更多