Powershell-时间是否在时间范围内



I'运行Powershell scrip,该scrip运行AWS S3备份。我需要查找当前时间是否在一个时间范围内。如果时间在中午12点到下午1点之间$CurrRun="中午备份">

这里有一个方法可以确定文件是否在特定的小时内最后一次写入。测试会忽略日期,因此如果需要,则需要更新代码。

它的作用。。。

  • 创建要使用的常量
  • 此时在我的系统上获取一个要使用的文件
    [0]文件的LWT小时=12p[1200小时]。CCD_ 2文件的LWT小时设置为5p[1700小时]
  • 检查LWT小时数是否在要求的范围内
  • 如果是,它会在屏幕上写下
    您将把您的"如果是怎么做"代码放在那里。[咧嘴笑]
  • 如果没有,它会写一条警告消息

代码。。。

$SourceDir = $env:TEMP
$Filter = '*.log'
$TargetHourRange = 12..13
# on my system right now ...
#    the [0] file has "LastWriteTime" set to "12:33 PM"
#    the [-1] file has "LastWriteTime" set to "5:28 PM"
$1stFile = (Get-ChildItem -LiteralPath $SourceDir -Filter $Filter -File)[0]
if ($1stFile.LastWriteTime.Hour -in $TargetHourRange)
{
'The LastWriteTime [ {0} ] of the file is in the required range [ {1} ].' -f $1stFile.LastWriteTime, "$TargetHourRange"
}
else
{
Write-Warning (    '{0} is out of range.' -f $1stFile.LastWriteTime)
}

输出1200小时文件。。。

The LastWriteTime [ 2020-04-21 12:33:51 PM ] of the file is in the required range [ 12 13 ].

输出1700小时文件。。。

WARNING: 2020-04-27 5:28:48 PM is out of range.

感谢Lee的输入。问题是如何知道scrip是在下午12:30还是11:30打来的。所以为了安全起见,我想检查一下时间是否在下午12点到1点之间。结果比我预期的要容易得多,因为我只需要晚上12点的24小时格式(HH(。12小时格式为(hh(。

$CurrRun="夜间备份"$CurrHour=获取日期-格式HHif($CurrHour-eq 12({$CurrRun=‘中午备份’}

$CurrRun

最新更新