【问题标题】:Using Robocopy to exclude a file extension from the root directory使用 Robocopy 从根目录中排除文件扩展名
【发布时间】:2011-09-26 03:27:06
【问题描述】:

我有一个目录,我想使用 Robocopy.exe 将其复制到另一个目录。

我的计划是从源目录的根目录中排除一些文件。事实上,我只想从目录的根目录中排除 .html 文件。

诀窍是我目前正在使用 /E,这会导致所有子文件夹也被处理。

因此,我目前的操作结果是,如果我使用:

/E /XF "*.html"

我将排除站点范围内的所有 HTML 文件。

有没有一种方法可以让我继续复制所有子文件夹,但也可以使用 XF 从根目录中排除 .html 文件?

类似:

/E /XF "c:\releases\website_source\*.html"

【问题讨论】:

  • 这是一个难题 - 传输文件但之后从目的地删除 .html 文件怎么办?

标签: directory root robocopy


【解决方案1】:

我的解决方案是不雅的,但很容易理解。 我只需使用两行批处理文件执行任务。 Robocopy 根文件夹(但不包括子目录) - 包括 .html 文件。 然后下一行 Robocopy 包括所有的子(不包括 *.html)

【讨论】:

    【解决方案2】:

    好吧,所以没有真正的理由,我必须找到一种方法来回答这个问题。

    我只能找到一种使用 powershell 的“体面”方式,但它仍然很乱。

    首先,编辑以下 powershell 以满足您的需求:

    $files = Get-ChildItem c:\releases\website_source -Filter {*.html}
    "/XF" > c:\temp\exclude.rcj
    foreach ($f in $files) {$f.FullName >> c:\temp\exclude.rcj}
    

    这会在 robocopy“作业”文件中的 /XF 命令之后创建文件列表。 然后像往常一样调用您的 robocopy 命令,但在其末尾添加 /job:c:\temp\exclude.rcj。这基本上将使每个根 HTML 文件的复杂 /XF 更易于在脚本中编写。

    请注意,您可以使用批处理文件执行上述操作,但我最好使用 powershell 然后批处理循环等。

    是的,我意识到在这一点上这是一个有点过时的问题,但我需要做点什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 2015-01-31
      • 1970-01-01
      • 2014-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多