Почему xcopy возвращает «неверное количество параметров»?

35190
Slothman

При некоторых обстоятельствах 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 
10

1 ответ на вопрос

14
Slothman

Решение этой проблемы было хитрым: оказалось, что 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определили использование прямой косой черты вместо обратной.

Также, если вы используете это как `событие пост-сборки`, вы должны убедиться, что вы помещаете кавычки вокруг полного пути` $ (TargetDir) `, поскольку в пути могут быть пробелы:` xcopy "$ (TargetDir) *. Dll ".. \ .. \ Project.Web \ bin` Highmastdon 9 лет назад 0
Это также может произойти, если у вас есть прямые косые черты в Source или Destination Path. Просто замените все прямые косые черты на всем пути, который вы проходите в xcopy! Juraj Petrik 8 лет назад 0