発行:
xcopy X:\ "Y:\...\bin\9876543210\" /c /g /d /i /e /r /h /y
期待どおりに動作します。しかしながら:
xcopy X:\ "Y:\...\bin\9876543210\" /c /g /d /i /e /r /h /y /exclude:"Y:\...\exclude.txt"
エラーを返します:
無効なパラメーター数
パス名(スペースを含む)が引用符で囲まれていない場合にも発生します。ただし、これは事実ではありません。 (読みやすいように編集された)パスはすべて正しく対応しています。構文( 製品ドキュメント-Xcopy )も正しいです。 OSに関してはWindows XP Professional x32 SP3。
2番目のcmdがエラーを返すのはなぜですか?どのように解決するのですか? xcopy(robocopyなど)の代替を探していません。
XCOPYは、DOSの時代を思わせる古いコマンドです。長いファイル名をサポートするために/ EXCLUDEオプションが更新されていないようです。うーん:
引用符を削除すると、スペースの後のテキストが追加のパラメーターとして解釈され、「パラメーターの数が無効です」エラーが表示されます。引用符を保持する場合、引用符をパスの一部として扱い、ファイルが見つからないと報告します。
次の3つの解決策があると思います。
1)パスに短い8.3フォルダー名を使用します。
もちろん、ボリュームの短縮名が無効になっている場合、これは機能しません。
2)SUBSTコマンドを使用して、面倒なパスのドライブエイリアスを作成します。
subst Q: "Y:\path with spaces"
xcopy X:\ "Y:\...\bin\9876543210\" /c /g /d /i /e /r /h /y /exclude:Q:exclude.txt
subst Q: /d
無料のドライブ文字を知らない場合、これは問題になる可能性があります。
3)(私のお気に入り)単純にPUSHDが面倒なパスを実行し、そこからコマンドを実行します:-)
pushd "Y:\path with spaces"
xcopy X:\ "Y:\...\bin\9876543210\" /c /g /d /i /e /r /h /y /exclude:exclude.txt
popd
---(https://sevenx7x.wordpress.com/2009/01/02/xcopy-with-exclude-option-shows-cant-read-file/ および 詳細については、http://forums.majorgeeks.com/showthread.php?t = 543 を参照してください。
_/EXCLUDE:file
_スイッチは、指定されたファイルを除外しません。 xcopy
コマンドリファレンス :
/exclude:FileName1[+[FileName2][+[FileName3](…)]
ファイルのリストを指定します。少なくとも1つのファイルを指定する必要があります。 各ファイルには検索文字列が含まれ、各文字列はファイル内の個別の行にあります。文字列のいずれかが、コピーされるファイルの絶対パスのいずれかの部分と一致する場合、そのファイルはコピーから除外されます。