我正在运行一个运行亚马逊网络服务S3备份的Powershell脚本。我需要找出当前时间是否在时间范围内。如果在中午12点到下午1点之间的时间$CurrRun = 'NoonBackup‘
发布于 2020-05-08 05:30:07
这里有一种方法可以确定文件是否在特定的小时范围内最后一次写入。测试会忽略日期,因此如果需要的话,您需要更新代码。
它的作用是..。
在我的系统上,此时[0]文件的LWT小时=12p1200小时。[-1]文件将LWT小时设置为5p 1700小时。
你会把你的"what to do if yes“代码放在那里。grin
代码..。
$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.发布于 2020-05-08 06:56:56
谢谢你的意见,李。问题是如何知道脚本是在12:30还是11:30调用的。所以为了安全起见,我想确认一下时间是不是在中午12点到1点之间。结果比我预期的要容易得多,因为我所需要的是24小时格式(HH)的12点。12小时格式为(hh)。
$CurrRun = 'NightBackup‘$CurrHour = Get-Date -Format HH if ($CurrHour -eq 12 ) {$CurrRun = 'NoonBackup'}
$CurrRun
https://stackoverflow.com/questions/61659271
复制相似问题