如果访问时间在时间​​窗口内,则 Powershell 命令用于修改文件

如果访问时间在时间​​窗口内,则 Powershell 命令用于修改文件

我正在尝试学习 Windows powershell,特别是想编写一个脚本来操作文件夹(包括子目录)内的所有文件。该脚本将检查每个文件,如果文件创建时间在某个时间段内,例如下午 2 点至下午 6 点,则应将创建时间设置为给定的日期时间 $my_date。

我有以下功能,但很难让它工作。我想知道是否有人可以帮忙?

Get-Childitem |
ForEach-Object {
$date = $_.CreationTime
if ( ($date.ToString('HH') -eq 14) -or ($date.ToString('HH') -eq 15) -or ($date.ToString('HH') -eq 16) -or ($date.ToString('HH') -eq 17) -or ($date.ToString('HH') -eq 18))
{$_.CreationTime=$my_date}

答案1

您可以..在 Powershell 中设置符号来创建整数值范围,并可以使用-in运算符来检查某个值是否出现在范围内。

# Define a range from 2pm - 6pm 
$hourRange = 14..24

# New date to set.
$myDate = [datetime]::Now

# Get files & folders
Get-ChildItem | Where-Object { 

    # Which creation times fall within the hour range.
    $_.CreationTime.Hour -in $hourRange } | ForEach-Object {

        # Change the creation time.
        $_.CreationTime = $myDate
}

相关内容