Chỉ loại trừ một số tệp có cùng tên khi sao chép bằng robocopy


15

Tôi có một cấu trúc thư mục như thế này:

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

Tôi muốn sao chép nội dung của thư mục1 bằng robocopy . Ví dụ:

robocopy folder1 destination /E

Tôi muốn loại trừ tệp help.text có trong thư mục1 nhưng bao gồm các tệp help.txt trong thư mục2, thư mục3, v.v. Cũng có thể có các tệp có tên help.txt ở nơi khác trong cấu trúc thư mục vì vậy tôi không muốn làm khó mã các đường dẫn đến các tập tin để bao gồm.

Tôi có thể sử dụng lệnh sau để loại trừ tất cả các tệp có tên help.txt nhưng có cách nào để loại trừ tệp help.txt trong thư mục gốc của thư mục1 không?

robocopy folder1 destination /E /XF help.txt

Câu trả lời:


15

Bạn phải bao gồm đường dẫn đầy đủ (bao gồm cả ổ đĩa) đến tệp để loại trừ. Đường dẫn tương đối sẽ không hoạt động.

Những công việc này:

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

Đây không phải là:

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

Cũng không làm điều này:

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

Bạn có thể loại trừ nhiều tệp như vậyrobocopy folder1 destination /E /XF "c:\file1" "c:\file2"
schnatterer

@ Dennis-Williamson, Cảm ơn câu trả lời đúng này. Đáng tiếc là không hoạt động với ký tự đại diện: robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt*"dẫn đến lỗi.
Olivier Faucheux

Vì vậy, sau 2 giờ thử các lệnh khác, điều này đã làm việc. Cảm ơn rất nhiều!
Christopher Chipps

0

Tôi không thấy rằng có bất kỳ cách nào để làm điều đó bằng tên tệp. Bạn có thể đặt một thuộc tính trên tệp mà bạn không muốn sao chép mà bạn "biết" không có trên bất kỳ tệp nào khác trong cây nguồn và sau đó sử dụng / xa để loại trừ các tệp có thuộc tính đó.

Mặc dù vậy, bạn sẽ không cần phải sử dụng một công cụ khác.

Điều này sẽ làm việc:

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

Trên thực tế, nếu bạn có một cấu trúc thư mục trông như thế này:

folder1\
  help.txt
  folder1\
    help.txt

nó có thể sẽ loại trừ cả hai tập tin đó.


Tôi thấy tôi sai.
wfaulk

0

Bạn có thể sử dụng% CD% để cung cấp cho bạn thư mục hiện tại. Điều này sẽ giúp bạn loại trừ các thư mục cụ thể. Thêm trợ giúp ở đây:

/programming//a/5274061

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.