Total Commander Knowledge Base

Есть вопрос?

Поищите ответ в самой большой русскоязычной базе знаний по Total Commander!

Копировать только заданные файлы

Q: Имеются 2 папки: C:\Dobro и D:\Dobro. Требуется скопировать из папки на диске D: в папку на диске C: ТОЛЬКО файлы с расширением .doc (а в этой папке куча файлов с разным расширением). Просто выделить только .doc файлы нельзя, так как в папке Dobro куча поддиректорий. Как можно решить такую задачу?
A: Способов множество, у каждого своя область применения.

1. Указать файловую маску *.doc в диалоге копирования в поле "Только файлы типа:".

1a. С FTP такой способ не работает, поэтому там можно использовать инструмент синхронизации, задав в нём в качестве фильтра нужную маску.

2. Если нужно скопировать требуемые файлы из всех подкаталогов непосредственно в C:\Dobro, не создавая в нём соответствующих подкаталогов, то можно в каталоге D:\Dobro нажать Ctrl+B, а затем Alt+Gray+ на любом DOC-файле. При этом будут выделены все DOC-файлы из всех подкаталогов, останется их только скопировать в C:\Dobro.

3. Использовать системную команду (утилиту) xcopy c опцией /S. Создать следующую кнопку:

Код кнопки
TOTALCMD#BAR#DATA:
xcopy
/s %p\*.doc %t\
wcmicons.dll,62
Скопировать DOC-файлы

-1

при этом каждый файл скопируется с его относительным путём (в своих подпапках).
Недостаток: ограниченная длина командной строки (у командной оболочки и у xcopy). Поэтому лучше использовать короткие имена %p %t, а не длинные %P %T. И всё равно, при очень глубоком вложении длины командной строки может не хватить - кнопка будет копировать не туда, или вообще откажется работать. Так что надо следить, чтобы папки были не очень глубоко вложенными.

Кроме того, в некоторых версиях Windows, придётся использовать одно из имён (обычно %P) в длинной форме - иначе скопируются короткие имена путей.

По мотивам forum.wincmd.ru