Kecualikan hanya beberapa file dengan nama yang sama saat menyalin menggunakan robocopy

15

Saya memiliki struktur direktori seperti ini:

folder1\
    help.txt
    folder2\
        help.txt
    folder3\
        help.txt
    ...

Saya ingin menyalin isi folder1 menggunakan robocopy . Sebagai contoh:

robocopy folder1 destination /E

Saya ingin mengecualikan file help.text yang ada di folder1 tetapi menyertakan file help.txt di folder2, folder3 dll. Mungkin ada juga file yang bernama help.txt di tempat lain dalam struktur direktori jadi saya tidak ingin sulit kode jalur ke file untuk dimasukkan.

Saya dapat menggunakan perintah berikut untuk mengecualikan semua file bernama help.txt tetapi apakah ada cara untuk mengecualikan file help.txt di root folder1?

robocopy folder1 destination /E /XF help.txt
Daniel Richardson
sumber

Jawaban:

15

Anda harus menyertakan path lengkap (termasuk drive) ke file untuk dikecualikan. Jalur relatif tidak akan berfungsi.

Ini bekerja:

robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt"

Ini tidak:

robocopy folder1 destination /E /XF "folder1\help.txt"

Ini juga tidak:

robocopy folder1 destination /E /XF ".\folder1\help.txt"
Dijeda sampai pemberitahuan lebih lanjut.
sumber
Anda dapat mengecualikan banyak file seperti begiturobocopy folder1 destination /E /XF "c:\file1" "c:\file2"
schnatterer
@ Dennis-Williamson, Terima kasih atas jawaban yang benar ini. Sayang sekali yang tidak bekerja dengan wildcard: robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt*"mengarah ke kesalahan.
Olivier Faucheux
Jadi setelah 2 jam mencoba perintah lain, ini berhasil. Terima kasih banyak!
Christopher Chipps
0

Saya tidak melihat bahwa ada cara untuk melakukan itu dengan nama file. Anda bisa mengatur atribut pada file yang Anda tidak ingin disalin yang Anda "tahu" tidak ada pada file lain di pohon sumber dan kemudian menggunakan / xa untuk mengecualikan file dengan atribut itu.

Namun, jika gagal, Anda harus menggunakan alat lain.

Ini akan berhasil:

echo folder1\help.txt > \temp\excl.txt
xcopy /E folder1 destination /EXCLUDE:\temp\excl.txt

Sebenarnya, jika Anda memiliki struktur direktori yang terlihat seperti ini:

folder1\
  help.txt
  folder1\
    help.txt

mungkin akan mengecualikan kedua file tersebut.

wfaulk
sumber
Saya melihat saya salah.
wfaulk
0

Anda dapat menggunakan% CD% untuk memberi Anda direktori saat ini. Ini akan membantu Anda mengecualikan direktori tertentu. Lebih banyak bantuan ada di sini:

/programming//a/5274061

abc
sumber