如何使用Powershell 2.0复制早于特定日期的文件夹

时间:2019-06-21 01:47:17

标签: windows powershell powershell-2.0

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

我已经能够使用:p来获取路径中所有文件夹的列表。

$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

任何帮助在这里都将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

将Lee所说的内容放入代码中。

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

这应该可以为您带来帮助。

我已将其设置为-gt,因为它只会显示过去45天内访问过的文件夹。