【问题标题】:Batch - Find and Move Folders Based on Folder Created Date批处理 - 根据文件夹创建日期查找和移动文件夹
【发布时间】:2018-06-21 21:35:49
【问题描述】:
我正在尝试创建执行以下操作的批处理(或 PowerShell)脚本:
- 获取当前日期(即 06/21/2018)
- 查看特定文件夹中的所有子文件夹(不是递归的,只是直接的子文件夹)并查找创建日期为上一年的所有文件夹,直到上一年的当前日期(即 01/ 01/2017 - 06/21/2017)。
- 将所有这些文件夹移至“2017 Jobs”文件夹。
所以我一直在寻找这个问题的答案,但似乎一切都集中在文件日期,而不是文件夹日期,所以我们到了。我知道如何使用 Robocopy 来移动找到的文件夹,但它的所有开关都是基于移动早于 X 日期的文件,而不是文件夹。关于如何实现基于文件夹的创建日期循环查找的任何想法?
【问题讨论】:
标签:
powershell
batch-file
【解决方案1】:
如果不为您构建整个脚本,以下是您的部分:
$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 }