使用Robocopy从根目录中排除文件扩展名

时间:2011-06-30 16:17:15

标签: directory root robocopy

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

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

诀窍是我目前正在使用/ E,目前正在处理所有子文件夹。

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

/E /XF "*.html"

我将在网站范围内排除所有HTML文件。

有没有办法可以继续复制所有子文件夹,还可以使用XF从根目录中排除.html文件?

类似的东西:

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

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

我只能使用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“job”文件中的/ XF命令之后创建一个文件列表。 然后正常调用robocopy命令,但在其末尾添加/job:c:\temp\exclude.rcj。这基本上会使每个根HTML文件的复杂/ XF更容易在脚本中写入。

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

是的,我知道这是一个有点过时的问题,但我需要做点什么。