我正在尝试迭代一组文件夹并将它们复制到PowerShell中的其他位置。所有文件夹都遵循以下命名约定:
20160621
这显然是用yyyymmdd
格式写的那一天。由于所有文件夹都遵循此惯例,我的问题是如何说:复制过去一周的所有文件夹“?我想过使用(get-date).AddDays(-7)
但我不确定如何将文件夹名称识别为日期对象而不是字符串。
答案 0 :(得分:1)
只需使用Get-ChildItem cmdlet检索文件并使用Where-Object cmdlet对其进行过滤。
以下脚本结合了三个Where
条件
DateTime
个对象,并确保其早于七天前:<强>脚本:强>
Get-ChildItem 'your_source' | Where-Object {
$_.PsIsContainer -and
$_.BaseName -match '\d{6}' -and
([DateTime]::ParseExact($_.BaseName, 'yyyyMMdd', $null) -gt (Get-Date).AddDays(-7))
} | Copy-Item -Destination 'Your_destination'