为什么xcopy返回“无效的参数数量”?


10

在某些情况下,xcopy将返回错误,Invalid number of parameters而不会给您任何提示。通常的解决方案是确保文件名用引号引起来,因为对于批处理文件来说,这可能是个问题,在批处理文件中xcopy %1 %2您确实需要这样的东西xcopy "%1" "%2"。我最近遇到了一个问题,但是问题不是空格:

C:\Temp\foo>c:/windows/system32/xcopy.exe /f /r /i /d /y * ..\bar\
Invalid number of parameters

Answers:


14

解决这个问题的技巧很棘手:事实证明,xcopy正在解析其自身二进制文件路径中的正斜杠。这工作正常:

C:\Temp\foo>c:\windows\system32\xcopy.exe /f /r /i /d /y * ..\bar\
C:\Temp\foo\blah -> C:\Temp\bar\blah
1 File(s) copied

如果您PATH使用正斜杠(而不是反斜杠)进行定义,则也可能会遇到这种情况。


另外,如果您将其用作Post-build event,则必须确保在的完整路径周围加上引号$(TargetDir),因为路径中可能会有空格:xcopy "$(TargetDir)*.dll" ..\..\Project.Web\bin
Highmastdon 2015年

1
如果在源路径或目标路径中有正斜杠,也会发生这种情况。只需在传递给xcopy的所有路径中将所有正斜杠替换为反斜杠即可!
Juraj Petrik

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.