Pourquoi xcopy renvoie-t-il «nombre de paramètres invalide»?

10

Dans certaines circonstances, xcopy retournera l'erreur Invalid number of parameterssans vous donner un indice sur ce qui se passe. La solution habituelle pour cela est de s'assurer que vos noms de fichiers sont entre guillemets, car cela peut être un problème avec les fichiers batch où vous avez quelque chose comme xcopy %1 %2et dont vous avez vraiment besoin xcopy "%1" "%2". J'ai récemment rencontré un problème, cependant, où le problème n'était pas des espaces:

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

Réponses:

14

La solution à celle-ci était délicate: il s'avère que xcopy analyse les barres obliques dans le chemin vers son propre binaire. Cela fonctionne bien:

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

Vous pouvez également exécuter cette opération si vous avez PATHdéfini des barres obliques au lieu de barres obliques inverses.

Slothman
la source
Aussi, si vous l'utilisez comme un Post-build event, vous devez vous assurer que vous mettez des guillemets autour du chemin complet de $(TargetDir), car il peut y avoir des espaces dans le chemin:xcopy "$(TargetDir)*.dll" ..\..\Project.Web\bin
Highmastdon
1
Cela peut également se produire si vous avez des barres obliques dans le chemin source ou de destination. Remplacez simplement toutes les barres obliques par des barres obliques inverses dans tout le chemin que vous passez à xcopy!
Juraj Petrik
0

Ma découverte était que j'avais besoin de doubles barres obliques sur les options

c:\windows\system32\xcopy.exe //f //r //i //d //y * "..\bar\"
Kenneth Hov
la source