Warum gibt xcopy eine "ungültige Anzahl von Parametern" zurück?

35300
Slothman

Unter bestimmten Umständen gibt xcopy den Fehler zurück, Invalid number of parametersohne dass Sie einen Hinweis darauf erhalten, was los ist. Die übliche Lösung hierfür ist, sicherzustellen, dass Ihre Dateinamen in Anführungszeichen eingeschlossen sind, da dies bei Batchdateien ein Problem sein kann, bei dem Sie so etwas haben xcopy %1 %2und wirklich brauchen xcopy "%1" "%2". Ich bin jedoch kürzlich auf ein Problem gestoßen, bei dem das Problem keine Leerzeichen war:

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

1 Antwort auf die Frage

14
Slothman

The solution to this one was tricky: it turns out that xcopy is parsing the forward slashes in the path to its own binary. This works fine:

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 

You can also run into this if you have your PATH defined using forward slashes instead of backslashes.

Wenn Sie dies als "Post-Build-Ereignis" verwenden, müssen Sie sicherstellen, dass Sie den vollständigen Pfad von $ (TargetDir) in Anführungszeichen setzen, da der Pfad möglicherweise Leerzeichen enthält: `xcopy" $ (TargetDir) *. Dll ".. \ .. \ Project.Web \ bin` Highmastdon vor 9 Jahren 0
Dies kann auch passieren, wenn im Quell- oder Zielpfad Schrägstriche vorhanden sind. Ersetzen Sie einfach alle Schrägstriche durch Backslashes auf dem gesamten Pfad, den Sie zu xcopy führen. Juraj Petrik vor 8 Jahren 0