状況によっては、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
これに対する解決策はトリッキーでした:それは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
を定義している場合も、これに遭遇する可能性があります。
私の発見は、オプションにスラッシュを2つ必要とすることでした。
c:\windows\system32\xcopy.exe //f //r //i //d //y * "..\bar\"