Як використовувати dir та копіювати разом для пошуку каталогів та копіювання у папку?


10

Мені потрібно шукати вказану папку та її підкаталоги для файлів (файлів), а потім скопіювати їх у вказану папку десь в іншому місці. Чи можна використовувати dirі copyз трубою?

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

Вищезгадане не працює. Ліва сторона труби знаходить те, що я хочу, але я не можу змусити її скопіювати знайдені файли. Я використовую командний рядок Windows 7.


Який тип файлів вам потрібен з цікавості? Чи не вистачило б wildcard?
Дейв

Мені потрібно використовувати підстановку (??? - "?" Є однозначною підстановкою) в команді таким чином, щоб вищезазначені фіксували foo_42, foo_01 і т. Д., А ті були в різних папках.
Flotsam N. Jetsam

Відповіді:


10

Ви можете просто використовувати xcopy:

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

Це буде містити структуру каталогу.

Якщо ви не хочете структури каталогів, ви можете зробити наступне:

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

Якщо ви використовуєте це в пакетному файлі, ви повинні подвоїти %подібне:

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

Насправді, мені потрібно трохи підправити це. Чи можна це зробити без збереження структури каталогів?
Flotsam N. Jetsam

Ха-ха, саме цього я боявся :) (тому я спеціально це заявив). Але що б ви зробили з повторюваними іменами? Це неможливо зробити із самим xcopy, але ви можете зробити це, переклавши щось до роботокопії (а може просто просто скопіювати, але у пакетному файлі). Яка версія Windows у вас є?
Рик

Windows 7. Дублікатів для моєї програми не буде.
Flotsam N. Jetsam

Додано метод копіювання в один каталог. На щастя, в роботокопії немає потреби. Просто використовуйте for /r.
Рік

1
Ти рок. Я б хотів, щоб я міг повторити вас. Дякую!
Flotsam N. Jetsam
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.