签发日期:
xcopy X:\ "Y:\...\bin\9876543210\" /c /g /d /i /e /r /h /y
按预期工作。但是:
xcopy X:\ "Y:\...\bin\9876543210\" /c /g /d /i /e /r /h /y /exclude:"Y:\...\exclude.txt"
返回错误:
参数数目无效
当路径名(包含空格)未用引号括起来时也会出现这种情况。但实际情况并非如此。路径(为便于阅读而编辑)均正确对应。语法(按照Product Documentation - Xcopy)也正确。相关操作系统为Windows XP Professional x32 SP3。
为什么second cmd返回错误,如何解决?我不想寻找xcopy的替代品(robocopy等)。
3条答案
按热度按时间lsmd5eda1#
XCOPY是一个可以追溯到DOS时代的老命令。看起来/EXCLUDE选项从来没有更新过以支持长文件名。唉:-(
如果删除引号,则空格后面的文本将被解释为附加参数,并会出现“参数数无效”错误。如果保留引号,则会将引号视为路径的一部分,并报告找不到文件。
我相信你有三种可能的解决办法:
1)在路径中使用简短的8.3文件夹名称。
当然,如果您的卷禁用了短名称,这将无法工作。
2)使用SUBST命令为您的故障路径创建驱动器别名。
如果您不知道空闲的驱动器号,则可能会出现问题。
3)(我的最爱)简单地PUSHD做麻烦的路径,并从那里运行命令:-)
有关详细信息,请参见https://sevenx7x.wordpress.com/2009/01/02/xcopy-with-exclude-option-shows-cant-read-file/和http://forums.majorgeeks.com/showthread.php?t=54300。
kupeojn62#
/EXCLUDE:file
开关不会排除指定的文件。根据xcopy
command reference:/exclude:FileName1[+[FileName2][+[FileName3](…)]
指定文件列表。必须至少指定一个文件。每个文件都将包含搜索字符串,每个字符串在文件中单独占一行。当任何字符串与要复制的文件的绝对路径的任何部分匹配时,将从复制中排除该文件。uyto3xhc3#
我也花了一些时间才把这个弄对(我也有同样的错误),但最终,这个格式对我很有效。就像所有的DOS一样,绝对的精确度是至关重要的,所以请随意复制和粘贴下面的内容。