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