windows - 如何使用 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
任何帮助将不胜感激。
谢谢
解决方案
将李所说的内容放入一些代码中。
Get-ChildItem -Path $Path -Filter "20*" | Where-Object {($_.PSIsContainer) `
-and ($_.LastAccessTime -gt ((Get-Date).AddDays(-45)))} | `
Copy-Item -Destination $destination -Recurse
这应该让你得到你所追求的。
我把它放在-gt
45 天前,因为这只会显示在过去 45 天内访问过的文件夹。
推荐阅读
- python - 为什么我的验证数据不能做出准确的猜测
- c - 由于此错误,无法使用 HAL 库
- r - 使用 stlplus::stlplus() 函数会出现奇怪的错误
- bash - 如何让awk打印第n列的所有内容
- typo3 - 使用未引用的命名参数时,TYPO3 抛出异常
- .net-core - 身份服务器 4 传递 acr_values 但不重定向到外部提供者
- c# - 访问托管在 AWS 私有存储桶中的 PDF
- asp.net - OleDb SQLDATASOURCE 无法选择通配符数据
- java - 使用 JAXB 生成 JAVA 类时出错:XPath 评估结果为空
- css - 大文本在 Firefox 中呈现模糊,但在 Chrome 中清晰