Почему 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

Ответы:


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

1
Это также может произойти, если у вас есть прямые косые черты в Source или Destination Path. Просто замените все прямые косые черты на всем пути, который вы проходите в xcopy!
Юрай Петрик

0

Мое открытие состояло в том, что мне нужны были двойные косые черты на опциях

c:\windows\system32\xcopy.exe //f //r //i //d //y * "..\bar\"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.