2

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

有谁知道为什么会发生这种情况?

谢谢!

列尼克

4

4 回答 4

6

是的,xcopy 就是那样愚蠢。

做这个:

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

尽管有时这仍然会出现问题。

例如,如果您有一个名为practice.obj的文件,它不会复制它,但它也无法复制您的 Microsoft。实践.ObjectBuilder.dll

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

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

现在 Microsoft.Practices.ObjectBuilder.dll 只有在您碰巧在同一目录中有 Microsoft.Practices.obj 文件时才会复制失败。得到它?

于 2008-10-13T17:02:10.900 回答
4

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

于 2008-10-13T16:21:21.013 回答
3

无论如何, XCOPY 现在已被弃用,所以我怀疑事情会得到解决。看看 ROBOCOPY - 它内置于 Vista 中,并包含在2003 和 XP的资源工具包中。

于 2008-10-13T17:23:50.340 回答
-3

答案是您可以通过键入以下内容获得的信息:

xcopy /?

即:

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

于 2008-10-13T16:23:34.130 回答