Чому 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визначено використання прямих косих кутів замість зворотних косих.


Крім того, якщо ви використовуєте це як a Post-build event, ви повинні переконатися, що ви ставите лапки навколо повного шляху $(TargetDir), оскільки на шляху можуть бути пробіли:xcopy "$(TargetDir)*.dll" ..\..\Project.Web\bin
Highmastdon

1
Це також може статися, якщо у вас є косої риски в прямій або до путівки призначення. Просто замініть всі прямі косої риски косою рисою на всьому шляху, який ви переходите до xcopy!
Юрай Петрик

0

Моє відкриття полягало в тому, що мені потрібні подвійні нахили вперед на варіанти

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