View previous topic :: View next topic |
Author |
Message |
suraev
Joined: 31 Oct 2013 Posts: 3
|
(Separately) Posted: Thu Oct 31, 2013 10:35 Post subject: Копирование без вложенных директорий |
|
|
Добрый день.
Поискал в русском и английском сегментах сети, но не могу найти ответ на такой вопрос:
как копировать без вложенных директорий?
Пример
Code: | -AAAA
--AAAA1
aaaa1.txt
--AAAA2
aaaa2.txt
aaaa.txt |
Нужно чтобы в итоге скопировалось
|
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Thu Oct 31, 2013 11:45 Post subject: |
|
|
Как вариант, открыть папку, откуда надо копировать структуру, выполнить там поиск на нужную глубину, вывести результаты в панель и, выделив только файлы, скопировать. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Thu Oct 31, 2013 12:00 Post subject: |
|
|
Каталоги же (-AAAA) не скопируются? Разве только воспользоваться для копирования CopyTree. |
|
Back to top |
|
 |
suraev
Joined: 31 Oct 2013 Posts: 3
|
(Separately) Posted: Thu Oct 31, 2013 12:16 Post subject: |
|
|
В версии 8.5 при копировании есть возможность делать выборку (фильтр), но если указать там, к примеру,
search for: *.txt
search in subdirectories: current dir only
всё равно копируется всё, включая структуру вложенных папок и файлы вложенных папок.
Добавлено спустя 51 минуту:
sa wrote: |
Каталоги же (-AAAA) не скопируются? Разве только воспользоваться для копирования CopyTree. |
Да, вариант с CopyTree рабочий, спасибо.
Но есть только одно "но" - файлов десятки тысяч, на десятки гигабайт, в итоге через упаковку (даже с "нулевым" сжатием в zip) получается довольно медленно. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Thu Oct 31, 2013 14:02 Post subject: |
|
|
MVV wrote: | Ну а чем плох вариант с CopyTree? | Я говорил, чем плох вариант без CopyTree.
suraev wrote: | В версии 8.5 при копировании есть возможность делать выборку (фильтр) | Оказывается, это есть и в гораздо более древних версиях... |
|
Back to top |
|
 |
suraev
Joined: 31 Oct 2013 Posts: 3
|
(Separately) Posted: Thu Oct 31, 2013 14:34 Post subject: |
|
|
sa wrote: | Оказывается, это есть и в гораздо более древних версиях... |
Я специально сегодня ставил 8.01 и последнюю бету 8.5 - именно в 8.5 появился плюсик справа от поля, где указываются типы (расширения) копируемых файлов. Может и в 8.01 это есть, но не так явно в интерфейсе (а я с TC не слишком опытен, эксплуатирую только самые основные очевидные функции).
Добавлено спустя 15 минут:
MVV wrote: | Зачем же делать через ж упаковку, если есть CopyTree?  |
Да, это я включил режим "тупняка". Я думал, что диалог, возникающий при ALT-F5 (а там надо выбирать архиватор), это и есть результат работы CopyTree. Теперь уже понял, что плагин проявляется именно в виде дополнительного архиватора в списке архиваторов. Сейчас буду разбираться, как с помощью CopyTree скопировать файлы только определённого типа ("allows to setup include/exclude masks for files to be proccessed"). Но поскольку есть отдельная тема для CopyTree, я свои вопросы направлю туда, если они возникнут.
Спасибо за наводку. |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10415 Location: Россия, Саратов
|
(Separately) Posted: Thu Oct 31, 2013 14:50 Post subject: |
|
|
sa
suraev
В прежних версиях была возможность выбирать уже существующий шаблон из выпадающего списка, в 8.50 можно также создавать новый шаблон прямо из диалога копирования, а не заранее. (Как раз этот самый плюсик.)
P.S. А вот оверквотинг на форуме наказуем. Лишнее цитирование убрано. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Thu Oct 31, 2013 14:57 Post subject: |
|
|
Для решения задачи можно ещё воспользоваться командой синхронизации каталогов: установить ассиметричный режим, без подкаталогов и без пустых каталогов (исходная панель должна быть слева, а каталоги для копирования должны быть выделены). Вызвать сравнение и затем синхронизировать, исключив из показа файлы, копируемые справа налево. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Thu Oct 31, 2013 16:53 Post subject: |
|
|
MVV wrote: | Так же можно только при глубине копирования, равной 1... | Другая задача и не ставилась.
suraev wrote: | всё равно копируется всё, включая структуру вложенных папок и файлы вложенных папок. | Похоже, что при копировании по шаблону, TC применяет шаблон только к файлам в каждом отдельно взятом каталоге. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Fri Nov 01, 2013 16:07 Post subject: |
|
|
Не сразу сообразил, что при использовании CopyTree, нет необходимости в предварительном поиске: достаточно в диалоге упаковки снять галку учёта подкаталогов. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Nov 02, 2013 18:26 Post subject: |
|
|
suraev, vbs:
Code: | '============================================================
' Копировать выбранные каталоги со всеми файлам без структуры
' Параметры: %WL "<путь получателя>"
' Пример: %WL "%T"
'============================================================
If WScript.Arguments.Count Then
List = WScript.Arguments(0) : Path = WScript.Arguments(1)
If Right(Path, 1) <> "\" Then Path = Path & "\"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SHA = CreateObject("Shell.Application")
For Each F in Split(FSO.GetFile(List).OpenAsTextStream(1, -1).ReadAll, vbNewLine)
If FSO.FolderExists(F) Then
T = Path & FSO.GetFileName(F)
If Not FSO.FolderExists(T) Then FSO.CreateFolder T
Set FNew = SHA.NameSpace(T) : Copy F, FNew
Recursive F, FNew : Set FNew = Nothing
End If
Next : Set FSO = Nothing : Set SHA = Nothing : WScript.Quit
End If
Sub Recursive(Fl, FdNew)
For Each Fd In FSO.GetFolder(Fl).SubFolders
Copy Fd, FdNew : Recursive Fd, FdNew
Next
End Sub
Sub Copy(OldF, NewF)
Set PA = SHA.NameSpace(CStr(OldF)).Items
PA.Filter 192, "*.*" : NewF.CopyHere PA, 12
End Sub |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Mon Nov 04, 2013 09:44 Post subject: |
|
|
Поиском в выделенном можно найти каталоги с текущим уровнем вложенности, вывести их на панель и добавить (с путями) в список исключений. Останется произвести нужное копирование и затем вернуть первоначальный список исключений. Громоздко, зато не требуются плагины. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Nov 04, 2013 12:02 Post subject: |
|
|
Упс. Я задание не так прочёл. Тут всё гораздо проще: Code: | TOTALCMD#BAR#DATA
xcopy
%V\*.* "%T%O\"
wcmicons.dll,50
Копировать папку с файлами, расположенными в её корне
1 |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
|