xcopy / exclude问题

时间:2008-10-13 16:18:53

标签: windows batch-file xcopy

我正在尝试运行复制除.obj等文件的xcopy。 我所看到的是当我的excludes.txt文件包含.obj作为扩展名时,不会复制Microsoft.Practices.ObjectBuilder.dll。删除.obj后,我正确复制了Microsoft.Practices.ObjectBuilder.dll。但这并不会发生在其他dll上。

有谁知道为什么会这样?

谢谢!

Lenik

4 个答案:

答案 0 :(得分:6)

是的,xcopy很蠢。

这样做:

dir /b *.obj >excludes.txt
xcopy * /exclude:excludes.txt targetdir

虽然这有时会出现问题。

例如,如果您有一个名为 practices.ob j的文件,它就不会复制该文件,但它也无法复制您的Microsoft。 Practices.Obj ectBuilder.dll

一个方便的技巧是,如果在dir上指定/ s,则会获得递归的完整路径,然后如果在xcopy上完全指定源目录,则排除必须与开始:

dir /s /b *.obj >excludes.txt
xcopy c:\sourcedir\* /exclude:excludes.txt \targetdir

现在,如果您在同一目录中碰巧有Microsoft.Practices.obj文件,则Microsoft.Practices.ObjectBuilder.dll将无法复制。得到它?

答案 1 :(得分:4)

我猜是因为子字符串.obj在名称Microsoft.Practices **。Obj ** ectBuilder.dll中找到,因为windows不区分大小写,所以它会将其排除。

答案 2 :(得分:3)

XCOPY现在是deprecated,所以我怀疑事情会得到解决。看一下ROBOCOPY - 它内置于Vista中,并且在2003 and XP的资源包中。

答案 3 :(得分:-3)

您可以通过输入以下内容获得答案:

xcopy /?

即:

  

/排除:文件1 [+ file2的] [+ file3的] ...
               指定包含字符串的文件列表。每个字符串                应该在文件的单独行中。当任何一个                字符串匹配文件的绝对路径的任何部分                复制后,该文件将被排除在复制之外。对于                例如,指定像\ obj \或.obj这样的字符串将被排除                obj目录下的所有文件或带有的所有文件                .obj扩展分别。