【发布时间】:2019-11-03 20:36:36
【问题描述】:
我有许多要复制的文件夹。这些文件夹的名称都是“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
如有任何帮助,我们将不胜感激。
谢谢
【问题讨论】:
-
用
Get-ChildItem得到列表,用.PSIsContainer过滤掉文件,按名称排序[日期字符串将按原样整齐排序],然后用Select-Object -Index (1..5)得到第一个5项目。 -
@Harlan - 不客气!很高兴能帮上一点忙……[grin]
标签: windows powershell powershell-2.0