【发布时间】:2021-02-25 13:06:07
【问题描述】:
希望你一切都好。
我是 Powershell 的新手,正在尝试制作一个脚本,允许根据文件名中的日期列出 7 天前的文件,然后将它们复制/移动到另一个目录。
文件结构:2020_06_11_DB.txt YYYY_MM_dd
我已经设置了这段脚本,但它只匹配具有参考日期 (DateRef) 的文件,而不是最不重要的(旧)文件:
$SourceDB = "C:\DB\"
$DestinationDB = "C:\Destination\DB\"
$DateRef = Get-Date ((Get-Date).AddDays(-7)) -Format yyyy_MM_dd
$Query = Get-ChildItem $SourceDB -Filter "*$DateRef*" |
ForEach-object {
Copy-Item -Path $_.FullName -Destination $DestinationDB
}
我尝试了像 -le 和 -lt 这样的运算符,但没有成功。如果您能帮助我,我将不胜感激。
Get-ChildItem $SourceDB -Filter '*.txt' | Where-Object {$_.BaseName -le "*$DateRef*"}
谢谢!
【问题讨论】:
-
不是比较日期字符串,而是比较日期对象。所以将您的文件名转换为日期时间对象并将其与您的目标日期时间对象进行比较。
标签: powershell filenames get-childitem