首页 > 解决方案 > 如何使用 Powershell 2.0 复制早于特定日期的文件夹

问题描述

我有许多要复制的文件夹。这些文件夹的名称都是'yyyymmdd',即20190615,可以追溯到一年或更长时间。我正在尝试找出一种仅复制这些文件夹的最后 45 天的方法。我遇到的最大问题是我运行它的计算机只有 Powershell 2.0,它似乎有一些 5 或更高版本没有的限制。

我已经能够获得路径中所有文件夹的列表:

$datedsubs = Get-ChildItem -path $path | where-object { $_ -like "20*" }

不过,从那里开始,我有点卡住了。我觉得使用 PS 5 或更高版本会更容易。我尝试过 Robocopy,尽管这不是 PS 解决方案,但它复制了所有内容,我只想要文件夹。

我已经尝试过类似以下的方法,但它似乎在 PS 2.0 中不起作用。

Get-ChildItem -Path $path | Where-Object { ($_ -like '20*') -and ($_.LastAccessTime -lt $datedlimit)} | Copy-Item -Destination $destination -Recurse

任何帮助将不胜感激。

谢谢

标签: windowspowershellpowershell-2.0

解决方案


将李所说的内容放入一些代码中。

Get-ChildItem -Path $Path -Filter "20*" | Where-Object {($_.PSIsContainer) `
    -and ($_.LastAccessTime -gt ((Get-Date).AddDays(-45)))} | `
    Copy-Item -Destination $destination -Recurse

这应该让你得到你所追求的。

我把它放在-gt45 天前,因为这只会显示在过去 45 天内访问过的文件夹。


推荐阅读