[Script] Копирование файлов по списку

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

null писал(а):А как сделать так: выделенные файлы и папки (с сохранением структуры) копируются в директории назначения, взятые из списка (как например при FTP-загрузке по списку)? Где-то уже видел, а где - не помню... заранее спасибо
Посмотри тут: http://forum.wincmd.ru/viewtopic.php?t=5685
В работе не проверял, возможно приведенные решения нуждаються в корректировке под твою задачу.
SkYB
Сообщения: 23
Зарегистрирован: Сб мар 04, 2006 19:52
Откуда: Киев

Сообщение SkYB »

Batya
Возвращаясь к скрипту "Копирование из списка" - можно ли к нему доделать опции , чтобы файл список после копирования опустошался - тобиш что там написано удалялось ( понимаю , что наверно это сложно сделать , но спросить , спросил) ?
И второе - иметь возможность не только копировать из списка а и переносить файлы из списка. Допустим - я хочу скачанные с интернета файлы , с работы - перенести домой на флешке - так как на работе они мне не нужны , а когда составляешь список - то файлы обычно берутся с разных мест и потом их вычищать вручную , довольно таки нудное занятие - если бы была возможность переноски этих файлов с диска на флешку - было бы очень классно. :roll:
Worros
Сообщения: 1123
Зарегистрирован: Пт янв 19, 2007 18:46

Сообщение Worros »

SkYB
На твоём месте я бы посмотрел в сторону плагинов TempPanel или TempDrive.
SkYB
Сообщения: 23
Зарегистрирован: Сб мар 04, 2006 19:52
Откуда: Киев

Сообщение SkYB »

Worros писал(а):SkYB
На твоём месте я бы посмотрел в сторону плагинов TempPanel или TempDrive.
Можешь в двух словах объяснить - что для чего? Потому как Темп панель я на сайте wincmd.ru - не нашёл - поиск не дал ничего - а по темдрайв - лишь файл на скачку без скринов , описания и комментариев.
Если не затруднит - то расскажи для чего они и как ими пользоваться , раз говоришь , что для меня они более приемлемы чем , скрипт ув. Batya
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

SkYB писал(а):Потому как Темп панель я на сайте wincmd.ru - не нашёл - поиск не дал ничего - а по темдрайв - лишь файл на скачку без скринов , описания и комментариев.
TempPanel=Temporary Panel. Версия 1.0.0.12 лежит и на wincmd.ru (в плагинах файловой системы), и у Гислера. С описанием. Версия 1.0.0.82 лежит, например, на польском сайте (это здесь). К ней документации нет, но могу сказать, что эта версия поддерживает свою специфическую колонку в панели сетевого окружения для отображения реального пути. Там же, на польском сайте - два альтернативных плагина с описаниями. А вот без скринов и комментариев придётся обойтись. В конце концов можно взять и попробовать самому.
Даже самая богатая фантазия
Не представит себе наши безобразия.
SkYB
Сообщения: 23
Зарегистрирован: Сб мар 04, 2006 19:52
Откуда: Киев

Сообщение SkYB »

Avada писал(а):
SkYB писал(а):Потому как Темп панель я на сайте wincmd.ru - не нашёл - поиск не дал ничего - а по темдрайв - лишь файл на скачку без скринов , описания и комментариев.
TempPanel=Temporary Panel. Версия 1.0.0.12 лежит и на wincmd.ru (в плагинах файловой системы), и у Гислера. С описанием. Версия 1.0.0.82 лежит, например, на польском сайте (это здесь). К ней документации нет, но могу сказать, что эта версия поддерживает свою специфическую колонку в панели сетевого окружения для отображения реального пути. Там же, на польском сайте - два альтернативных плагина с описаниями. А вот без скринов и комментариев придётся обойтись. В конце концов можно взять и попробовать самому.
Спасибо , кажется разобрался. Темп панель - вроде то что нужно.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

SkYB писал(а):Темп панель - вроде то что нужно.
Докручивать скрипт уже не надо?
Нет, я не сплю. Я просто медленно моргаю.
SkYB
Сообщения: 23
Зарегистрирован: Сб мар 04, 2006 19:52
Откуда: Киев

Сообщение SkYB »

Batya писал(а):
SkYB писал(а):Темп панель - вроде то что нужно.
Докручивать скрипт уже не надо?
Пока сказать на 100% затрудняюсь - я сейчас попользую эту Темп панель - а потом отпишусь здесь в любом случае - скажу результат - оно или не оно. :roll:
barin
Сообщения: 5
Зарегистрирован: Пт мар 27, 2009 23:14

Сообщение barin »

Доброго времени суток!

Простите, если не по теме, но очень нужно


Возможно ли реализовать следующее

1. копирование только *.ext1 с сохранением структуры папок

f:\ Folder1\subfolder1\blyablya.ext1 -> c:\ Folder1\subfolder1\blyablya.ext1
f:\ Folder1\subfolder2\blyablyablya.ext1 -> c:\ Folder1\subfolder2\blyablyablya.ext1
f:\ Folder2\subfolder1\ blyablya.ext1 -> c:\ Folder2\subfolder1\ blyablya.ext1
f:\ Folder3\subfolder1\subsubfolder1\ blya.ext1 -> c:\ Folder1\subfolder1\subsubfolder1\ blya.ext1

2. копирование только subfolders1 с содержимым этой папки (только файлы, но со структурой подпапок) с сохранением названия верхней папки т.е.

f:\ Folder1\subfolder1\blyablya.ext -> c:\ Folder1\subfolder1\blyablya.ext
f:\ Folder1\subfolder1\blyablyablya.ext2 -> c:\ Folder1\subfolder1\blyablyablya.ext2
f:\ Folder1\subfolder1\*.* -> c:\ Folder1\subfolder1\*.*
f:\ Folder1\subfolder1\subsubfolder1\ blya.ext -> c:\ Folder1\subfolder1\subsubfolder1\ empty
f:\ Folder1\subfolder2\... -> not copy

3. Путь для копирования необходимых файлов или папок импортируется из файла, в котором вручную вбиваются все эти пути

Заранее спасибо
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Навскидку (или с простенькими тестами) на оба вопроса ответ один: нет, ни средствами ТС, ни средствами батников это сделать нельзя. Да, с помощью скриптов сделать это можно, причем весьма просто. Если четко поставишь ТЗ (как любит говорить Batya), могу попробовать сделать, но только на PowerPro. А то твой п. 3 лично мне куда менее понятен, чем пп. 1 и 2. Используй термины "путь-источник" и "путь-приемник".
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
barin
Сообщения: 5
Зарегистрирован: Пт мар 27, 2009 23:14

Сообщение barin »

в 3 пункте имеется ввиду следующее: пути-приемники соответствуют указанным критериям как в п.1 и п.2, но путь-источник вбивается вручную, на примере п.2 необходимо скопировать папку subfolder1 из следующих путей-источников
f:\ Folder1\subfolder1\ ; f:\ Folder2\subfolder1\; f:\ Folder3\subfolder1\ ; f:\ Folder4\subfolder1\ и т.д. в пути-применики с:\ Folder1\subfolder1\ ;
с:\ Folder2\subfolder1\ и т.д
пути источники вбиваются вручную ,например, в файл и скрипт берет эти данные оттуда

А было бы еще круто если к примеру задаешь subfolder1 и эта папка копируется из всех мест, где она есть :) из folder1, folder2, folder3 etc

и еще вопрос, имеет ли значение сетевой диск (или путь-источник в сетке) иль нет?
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Поразмышлял еще, и вот что получилось.

п. 1
1. Перейти в f:\
2. Нажать Alt+F7
3. Указать маску *.ext1
4. Когда поиск закончится, нажать Feed to Listbox
5. На противоположной панели перейти в с:\
6. Выделить все и выдать команду cm_PackFiles
7. Указать "архиватор" TreeCopyPlus
7. Нажать ОК.

Получится то, чего ты добивался? Если нет, то что не так? Если да, то задача решена.
Однако второй твой пост наводит на мысль, что на f:\ есть директории, в которых вообще не надо ничего искать. Это так или надо шерстить весь диск в поисках *.ext1 файлов?

п.2.
Как я понял, задача усложняется относительно п. 1, а именно: должны копироваться только файлы с путем f:\ Folder1\subfolder1\*.* и ниже, в приемник c:\Folder1\subfolder1\*.*. Если да, то кто мешает:

1. Создать директорию c:\Folder1\subfolder1
2. Скопировать туда директорию f:\Folder1\subfolder1 со всем содержимым.

Видимо, я все-таки неправильно понял ТЗ. Строка

f:\ Folder1\subfolder2\... -> not copy

вопросов не вызывает, но как понять

f:\ Folder1\subfolder1\subsubfolder1\ blya.ext -> c:\ Folder1\subfolder1\subsubfolder1\ empty

Чем плох файл-источник? Случаен ли пробел перед именем? Что такое "empty"? Должен образовываться файл объемом 0?

Напоследок:
имеет ли значение сетевой диск (или путь-источник в сетке) иль нет?
Ни дома, там, где я пишу скрипты, ни здесь, где я выхожу в Интернет, локальной сети нет и скрипт отлаживать не на чем.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
barin
Сообщения: 5
Зарегистрирован: Пт мар 27, 2009 23:14

Сообщение barin »

хорошо. давай более конкретно без всяких этих сабфолдеров и тп

где-то на диске есть следующее древо

MOSCOW
-CHERTEGI
--proetk_msk.dwg
-DOCS
--dogovor_msk.doc
-MAILS
---outlook.pst
-OTHER
--scan.pdf

PETER
-CHERTEGI
--proetk_pit.dwg
-DOCS
--dogovor_pit.doc
-MAILS
- -outlook.pst
-OTHER
- -scan.pdf

VLADIK
-CHERTEGI
- -proetk_vla.dwg
-DOCS
- -dogovor_vla.doc
-MAILS
- -outlook.pst
-OTHER
- -scan.pdf

ROSTOV
-CHERTEGI
- -proetk_ros.dwg
-DOCS
- -dogovor_ros.doc
-MAILS
- -outlook.pst
-OTHER
- -scan.pdf

и т.д.

Все это весит терабайты да и мне не нужно все. мне нужны к примеру все что в папке CHERTEGI, но чтобы в месте копирования создавалась не просто папка CHERTEGI,а верхняя папка откуда эта папка была скопирована

и второй пример, нужны файлы только DOC, но чтобы я знал откуда эти DOC были скопированы , потому что не всегда в названии файла присутствует обозначение с кем этот договор (здесь в примере dogovor_ros.doc) для этого скопируемый файл должен лежать в \ROSTOV\DOCS\dogovor_ros.doc

так более ясен ТЗ?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

barin
Что-то ТЗ я не совсем понял :)
barin писал(а):мне нужны к примеру все что в папке CHERTEGI, но чтобы в месте копирования создавалась не просто папка CHERTEGI,а верхняя папка откуда эта папка была скопирована
barin писал(а):нужны файлы только DOC, но чтобы я знал откуда эти DOC были скопированы
Так в чем проблема? Вахмурка же расписал, как это сделать. Только вместо
Вахмурка писал(а):3. Указать маску *.ext1
указываешь "CHERTEGI" или "*.DOC".
А вместо вот этого:
Вахмурка писал(а):выдать команду cm_PackFiles
7. Указать "архиватор" TreeCopyPlus
можно также использовать скрипт, приведенный в начале темы.
barin писал(а):в 3 пункте имеется ввиду следующее: пути-приемники соответствуют указанным критериям как в п.1 и п.2, но путь-источник вбивается вручную, на примере п.2 необходимо скопировать папку subfolder1 из следующих путей-источников
f:\ Folder1\subfolder1\ ; f:\ Folder2\subfolder1\; f:\ Folder3\subfolder1\ ; f:\ Folder4\subfolder1\ и т.д. в пути-применики с:\ Folder1\subfolder1\ ;
с:\ Folder2\subfolder1\ и т.д
Т.е., насколько я понял, количество копируемых папок равно количеству строк в файле-списке? Тогда используем MultiRun.vbs. Например, пусть скрипт - C:\Folder\CopyStruct.vbs, а список папок для копирования - C:\Lists\FoldersList.txt, тогда кнопка:

Код: Выделить всё

TOTALCMD#BAR#DATA
%Commander_Path%\Utils\WHS\MultiRun.vbs
1 C:\Scripts\CopyStruct.vbs <<%L>> <<C:\Lists\FoldersList.txt>> 2
%Commander_Path%\WCMICONS.DLL,51
Мое хитрое копирование


-1
Нет, я не сплю. Я просто медленно моргаю.
barin
Сообщения: 5
Зарегистрирован: Пт мар 27, 2009 23:14

Сообщение barin »

Batya, а как в список для копирования вставлять пути: через запятую, точку-запятую?
Ответить