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バックスラッシュの代わりにスラッシュを使用して定義している場合も、これに遭遇する可能性があります。


あなたはこれを使用している場合にもPost-build event、あなたはの完全なパスを引用符で囲みことを確認する必要があり$(TargetDir)、パスにスペースがあるかもしれないとして、:xcopy "$(TargetDir)*.dll" ..\..\Project.Web\bin
Highmastdon

1
これは、ソースまたは宛先パスにスラッシュがある場合にも発生する可能性があります。xcopyに渡すすべてのパスで、すべてのスラッシュをバックスラッシュに置き換えるだけです!
Juraj Petrik、2015年

0

私の発見は、オプションにスラッシュを2つ必要とすることでした。

c:\windows\system32\xcopy.exe //f //r //i //d //y * "..\bar\"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.