robocopy /mir 不复制文件夹结构

robocopy /mir 不复制文件夹结构

我正在使用以下脚本存档 2013 年 1 月 1 日之前的所有内容:

foreach  ($i in Get-ChildItem "O:\Projects” -Force -Recurse)
{
    if ($i.LastWriteTime -gt ($(Get-Date).AddDays(-649)))
    {
          robocopy $i.FullName "A:\Operations\Projects" /Z /S /MOVE /MIR
    }
}

问题是脚本没有复制精确的目录树。它只是将包含相关文件的文件夹复制到目标目录的根目录。

举例来说,这代表我们的文件夹结构:

  • 项目A
    • 引用
      • QuoteA.pdf(最后修改于 2011 年 6 月)
    • 清仓
      • CloseoutA.pdf(最后修改于 2011 年 11 月)
  • 项目 B
    • 引用
      • QuoteB.pdf(最后修改于 2012 年 10 月)
    • 清仓
      • CloseoutB.pdf(最后修改于 2013 年 4 月)

上述脚本将产生以下目标文件夹:

  • 引用
    • 引文A.pdf
    • 引文B.pdf
  • 清仓
    • 清仓A.pdf

上面的例子非常简单。有些文件有 8 或 9 个文件夹深。源目录中有近 30,000 个文件夹。我需要在移动过程中保持适用文件的完整路径不变,我该如何实现呢?

答案1

根据以下评论进行编辑:

您可以尝试让 robocopy 决定是否需要移动树中的文件并避免使用 Get-Childitem:

robocopy "O:\Projects" "A:\Operations\Projects" /Z /S /MOVE /MIR /MINAGE:649

答案2

变化/E

或者使用额外的 IF检查为了文件夹你要加上(经过姓名空的并使用/ERobocopy里面如果

希望有帮助!:)

相关内容