powershell - 批处理 - 根据文件夹创建日期查找和移动文件夹
问题描述
我正在尝试创建一个执行以下操作的批处理(或 PowerShell)脚本:
- 获取当前日期(即 06/21/2018)
- 查看特定文件夹中的所有子文件夹(不是递归的,只是直接子文件夹)并查找创建日期为上一年的所有文件夹,直到上一年的当前日期(即 01/01/2017 - 2017 年 6 月 21 日)。
- 将所有这些文件夹移至“2017 Jobs”文件夹。
所以我一直在寻找这个问题的答案,但一切似乎都集中在文件日期,而不是文件夹日期,所以我们到了。我知道如何使用 Robocopy 来移动找到的文件夹,但它的所有开关都是基于移动早于 X 日期的文件,而不是文件夹。关于如何实现基于文件夹的创建日期循环查找的任何想法?
解决方案
无需为您构建整个脚本,以下是您的作品:
$date = Get-Date
$dateAYearAgo = $date.AddYears(-1)
$items = Get-ChildItem "C:\base\folder" | Where-Object {$_.CreationTime -gt $start -and $_.CreationTime -lt $end}
$items | Move-Item "C:\base\folder\2017 Jobs"
至于只过滤文件夹,您可以查看您所在的 powershell 版本是否Get-ChildItem C:\ -Directory
只允许提取目录,或者您可以使用Get-ChildItem C:\ | Where-Object { $_.PSIsContainer }
推荐阅读
- go - 检查 Go AST 中的最后一个兄弟语句?
- html - 如何查询 Google Cloud SQL 数据库并将结果显示为 html?
- python - 最佳地从输入系列生成2个系列
- telegram-bot - 如何将excel数据作为图片粘贴到电报中
- c# - 刷新在实体框架中使用数据库优先方法模型创建的实体中的数据
- javascript - 从一个 HTML 页面到另一个 HTML 页面的表单数据
- javascript - Node.js 使用没有模块名称的导入
- python - 按行搜索和修改 CSV 文件,只有一个或两个元素,不一定是该行中的所有元素
- angular - 如何使用角垫复选框 formControlName 翻转布尔答案
- android - 将图像的位图更改为 uri 时应用程序崩溃