我正在尝试运行复制除.obj等文件的xcopy。 我所看到的是当我的excludes.txt文件包含.obj作为扩展名时,不会复制Microsoft.Practices.ObjectBuilder.dll。删除.obj后,我正确复制了Microsoft.Practices.ObjectBuilder.dll。但这并不会发生在其他dll上。
有谁知道为什么会这样?
谢谢!
Lenik
答案 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扩展分别。