Làm thế nào để sử dụng dir và sao chép cùng nhau để tìm kiếm thư mục và sao chép vào một thư mục?


10

Tôi cần tìm kiếm một thư mục được chỉ định và các thư mục con của nó cho (các) tệp, sau đó sao chép chúng vào một thư mục được chỉ định ở một nơi khác. Có thể sử dụng dircopyvới một đường ống?

dir /s foo???.txt | copy g:\someplace

Ở trên không hoạt động. Phía bên trái của đường ống tìm thấy những gì tôi muốn, nhưng tôi không thể lấy nó để sao chép các tập tin tìm thấy. Tôi đang sử dụng dấu nhắc lệnh của Windows 7.


Loại tập tin nào bạn cần vì tò mò? Một ký tự đại diện sẽ không đủ?
Dave

Tôi cần sử dụng các ký tự đại diện (??? - "?" Là một ký tự đại diện một chữ số) trong lệnh sao cho ở trên sẽ bắt được foo_42, foo_01, v.v. và chúng sẽ nằm trong các thư mục con khác nhau.
Flotsam N. Jetsam

Câu trả lời:


10

Bạn chỉ có thể sử dụng xcopy:

xcopy /s foo???.txt g:\someplace

Điều này sẽ giữ cấu trúc thư mục.

Nếu bạn không muốn cấu trúc thư mục, bạn có thể làm như sau:

for /r %i in (foo???.txt) do xcopy /Y "%i" g:\someplace

Nếu bạn đang sử dụng cái này trong một đợt, bạn nên tăng gấp đôi %như thế này:

for /r %%i in (foo???.txt) do xcopy /Y "%%i" g:\someplace

Thật ra, tôi cần phải gấp đôi nó một chút. Nó có thể được thực hiện mà không giữ cấu trúc thư mục?
Flotsam N. Jetsam

Haha, đó là những gì tôi sợ :) (đó là lý do tại sao tôi đặc biệt tuyên bố nó). Nhưng bạn sẽ làm gì với tên tập tin trùng lặp? Nó không thể được thực hiện với xcopy chính nó nhưng bạn có thể làm điều đó với đường ống một cái gì đó để sao chép (hoặc có thể chỉ sao chép nhưng trong một tập tin). Bạn có phiên bản Windows nào?
Rik

Windows 7. Sẽ không có bất kỳ bản sao nào cho ứng dụng của tôi.
Flotsam N. Jetsam

Đã thêm phương thức để sao chép vào một thư mục. May mắn không cần robocopy. Chỉ cần sử dụng for /r.
Rik

1
Bạn đá. Tôi ước tôi có thể nâng bạn lên một lần nữa. Cảm ơn!
Flotsam N. Jetsam
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.