批处理-根据文件夹创建日期查找和移动文件夹

时间:2018-06-21 21:35:49

标签: powershell batch-file

我正在尝试创建执行以下操作的批处理(或PowerShell)脚本:

  1. 获取当前日期(即06/21/2018)
  2. 查看特定文件夹中的所有子文件夹(不是递归的,而是直接子文件夹),并查找具有上一年创建日期的所有文件夹,直到上一年的当前日期(即01 / 01/2017-06/21/2017)。
  3. 将所有这些文件夹移动到“ 2017 Jobs”文件夹。

因此,我一直在寻找这个问题的答案,但似乎所有内容都围绕文件日期而不是文件夹日期,所以就在这里。我知道如何使用Robocopy移动找到的文件夹,但是所有这些开关都是基于移动早于X日期的文件而不是文件夹。关于如何实现基于文件夹的创建日期循环查找的任何想法?

1 个答案:

答案 0 :(得分:3)

不为您构建整个脚本,这是您的作品:

$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 }