windows 设置排除参数时,xcopy返回错误“参数数无效

eqoofvh9  于 2023-01-10  发布在  Windows
关注(0)|答案(3)|浏览(369)

签发日期:

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等)。

lsmd5eda

lsmd5eda1#

XCOPY是一个可以追溯到DOS时代的老命令。看起来/EXCLUDE选项从来没有更新过以支持长文件名。唉:-(
如果删除引号,则空格后面的文本将被解释为附加参数,并会出现“参数数无效”错误。如果保留引号,则会将引号视为路径的一部分,并报告找不到文件。
我相信你有三种可能的解决办法:

1)在路径中使用简短的8.3文件夹名称。

当然,如果您的卷禁用了短名称,这将无法工作。

2)使用SUBST命令为您的故障路径创建驱动器别名。

subst Q: "Y:\path with spaces"
xcopy X:\ "Y:\...\bin\9876543210\" /c /g /d /i /e /r /h /y /exclude:Q:exclude.txt
subst Q: /d

如果您不知道空闲的驱动器号,则可能会出现问题。

3)(我的最爱)简单地PUSHD做麻烦的路径,并从那里运行命令:-)

pushd "Y:\path with spaces"
xcopy X:\ "Y:\...\bin\9876543210\" /c /g /d /i /e /r /h /y /exclude:exclude.txt
popd

有关详细信息,请参见https://sevenx7x.wordpress.com/2009/01/02/xcopy-with-exclude-option-shows-cant-read-file/http://forums.majorgeeks.com/showthread.php?t=54300

kupeojn6

kupeojn62#

/EXCLUDE:file开关不会排除指定的文件。根据xcopy command reference
/exclude:FileName1[+[FileName2][+[FileName3](…)]指定文件列表。必须至少指定一个文件。每个文件都将包含搜索字符串,每个字符串在文件中单独占一行。当任何字符串与要复制的文件的绝对路径的任何部分匹配时,将从复制中排除该文件。

uyto3xhc

uyto3xhc3#

我也花了一些时间才把这个弄对(我也有同样的错误),但最终,这个格式对我很有效。就像所有的DOS一样,绝对的精确度是至关重要的,所以请随意复制和粘贴下面的内容。

xcopy /t /e "C:\Users\username\Your Folder" "C:\Users\user\Your Folder"

相关问题