Saya perlu mendapatkan robocopy untuk mengecualikan file apa pun yang jalurnya berisi direktori dengan nama tertentu. Misalnya, "bilah":
c:\foo\bar\a.txt
c:\bar\c.txt
d:\baz\bar\flub\d.txt
harus dikecualikan, tetapi tidak
c:\foo\barf\b.txt
Berikut adalah hal-hal yang saya coba - masing-masing ditolak oleh robocopy:
/XD \bar\
/XD *\bar\*
/XD *^\bar^\*
Ada ide?
Jika Anda mencoba berbagai direktori filter, pastikan untuk menghapus folder tujuan Anda di antara perubahan!
Gotcha bagi saya adalah bahwa saya tidak menyadari saklar direktori abaikan juga diterapkan ke folder tujuan. Saya telah menjalankan robocopy dengan
/MIR
dan mengubah direktori sumber, dan direktori tujuan saya diperbarui seperti yang diharapkan. Kemudian saya perhatikan saya memiliki folder arsip yang tidak saya inginkan, jadi saya menambahkan/XD archive
, tetapi folder tujuan saya masih memiliki folder arsip di dalamnya!Setelah mengacaukan wildcard dan termasuk / tidak termasuk
\
s, saya akhirnya mencoba menghapus folder tujuan dan menjalankan kembali skrip - kali ini tidak memiliki folder arsip! Ini adalah perintah yang saya jalankan, dengan nama direktori yang diubah untuk melindungi yang tidak bersalah:sumber
Maaf, tetapi menurut dokumentasi di https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy :
Jadi ini secara khusus berarti wildcard dapat digunakan di flag / xf tetapi tidak di flag / xd.
sumber