Mengapa xcopy mengembalikan "jumlah parameter tidak valid"?

10

Dalam beberapa keadaan, xcopy akan mengembalikan kesalahan Invalid number of parameterstanpa memberi Anda petunjuk tentang apa yang terjadi. Solusi yang biasa untuk ini adalah memastikan bahwa nama file Anda dilampirkan dalam tanda kutip, karena ini bisa menjadi masalah dengan file batch di mana Anda memiliki sesuatu seperti xcopy %1 %2dan Anda benar-benar membutuhkan xcopy "%1" "%2". Saya baru-baru ini mengalami masalah, di mana masalahnya bukan spasi:

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

Jawaban:

14

Solusi untuk yang satu ini rumit: ternyata xcopy mengurai garis miring ke depan ke binernya sendiri. Ini berfungsi dengan baik:

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

Anda juga bisa mengalami ini jika Anda telah PATHmendefinisikan menggunakan garis miring bukan garis miring terbalik.

Slothman
sumber
Juga jika Anda menggunakan ini sebagai Post-build event, Anda harus memastikan bahwa Anda meletakkan tanda kutip di seluruh jalur penuh $(TargetDir), karena mungkin ada spasi di jalan:xcopy "$(TargetDir)*.dll" ..\..\Project.Web\bin
Highmastdon
1
Ini juga dapat terjadi jika Anda memiliki garis miring di Sumber atau Jalur Tujuan. Cukup ganti semua garis miring ke depan dengan garis miring terbalik di semua jalur yang Anda lewati ke xcopy!
Juraj Petrik
0

Penemuan saya adalah bahwa saya membutuhkan garis miring ganda pada opsi

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