我正在尝试学习 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
}