Perché xcopy restituisce "numero di parametri non valido"?


10

In alcune circostanze, xcopy restituirà l'errore Invalid number of parameterssenza darti un'idea di cosa stia succedendo. La solita soluzione per questo è assicurarsi che i nomi dei file siano racchiusi tra virgolette, in quanto questo può essere un problema con i file batch in cui hai qualcosa di simile xcopy %1 %2e di cui hai davvero bisogno xcopy "%1" "%2". Di recente ho riscontrato un problema in cui il problema non era spazi:

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

Risposte:


14

La soluzione a questa è stata complicata: si scopre che xcopy sta analizzando le barre in avanti nel percorso del proprio binario. Funziona bene:

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

Puoi anche imbatterti in questo se hai PATHdefinito usando le barre in avanti anziché le barre rovesciate.


Inoltre, se lo stai usando come a Post-build event, devi assicurarti di mettere le virgolette attorno al percorso completo di $(TargetDir), poiché potrebbero esserci spazi nel percorso:xcopy "$(TargetDir)*.dll" ..\..\Project.Web\bin
Highmastdon

1
Questo può accadere anche se sono presenti barre in avanti nel percorso di origine o destinazione. Sostituisci semplicemente tutte le barre in avanti con barre inverse in tutto il percorso che passi a xcopy!
Juraj Petrik,

0

La mia scoperta è stata che avevo bisogno di doppie barre in avanti sulle opzioni

c:\windows\system32\xcopy.exe //f //r //i //d //y * "..\bar\"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.