回答:
失敗の一部は、Robocopyがエスケープ文字として解釈しようとするため、ディレクトリを参照するときにRobocopyで末尾の\を使用していることです(これは不可です)。Robocopyを使用すると、ほとんどの人が何らかの形でこの間違いを犯します。それを念頭に置いて、この例は動作します:
/XD "\Bar"
より具体的なフォルダー構造に一致させたい場合(他のサブフォルダーに一致しないように、次のように詳細を追加できます:
/XD "\Foo\Bar"
/XD "C:\Foo\Bar"
別のディレクトリフィルターを試行する場合は、変更の間に宛先フォルダーをクリアするようにしてください!
私にとっての落とし穴は、ディレクトリの無視スイッチが宛先フォルダにも適用されることに気付いていなかったことです。/MIR
ソースディレクトリを使用してrobocopyを実行し、変更しました。宛先ディレクトリは期待どおりに更新されました。それから、不要なアーカイブフォルダーがあることに気づいたので、を追加しました/XD archive
が、宛先フォルダーにはまだアーカイブフォルダーがありました!
ワイルドカードをいじり、\
s を含めたり除外した後、最終的に宛先フォルダーを削除してスクリプトを再実行しました-今回はアーカイブフォルダーがありませんでした!以下は、無実を保護するためにディレクトリ名を変更した、実行中のコマンドです。
robocopy \\SERVER\Some\Folder\Path .\Some\Relative\Path /Copy:DAT /Mir /R:0 /W:1 /XD archive*
申し訳ありませんが、https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopyのドキュメントによると:
/ xf <FileName> [...]指定した名前またはパスに一致するファイルを除外します。FileNameにはワイルドカード文字(*および?)を含めることができることに注意してください。
/ xd <Directory> [...]指定した名前とパスに一致するディレクトリを除外します。
したがって、これは特に、/ xfフラグでは使用できますが、/ xdフラグでは使用できないことを意味します。