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

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

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

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

Сообщение Batya »

barin
В файле FoldersList.txt каждой\му выделенной\му папке\файлу соответствует отдельная строка - папка назначения.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

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

barin:
1. Чай, теперь твоя душенька довольна? Задача решена?
2. А можно ли было ее решить без внешних файлов? Например, так: на одной панели выделяем файлы/директории для копирования, на противоположной либо приемник, либо шаблон, и жмем кнопку.

Использование внешних файлов крайне неудобно, хотя в ряде случаев без них обойтись просто невозможно. Пока откроешь такой файл, пока отредактируешь, перетащишь пути (возможно, через буфер), пока сохранишь, так быстрее было бы врукопашную скопировать.

Файл настроек (ини) - другой дело. Он, как правило, редактируется редко. А тут, видимо, под каждую конкретную задачу надо свой файл делать.

Я потреял нить задачи в тот момент, когда Batya эту нить подхватил. Так что вопрос обоим: можно ли решить задачу, только выделяя файлы/директории на панелях?
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Вахмурка писал(а):2. А можно ли было ее решить без внешних файлов? Например, так: на одной панели выделяем файлы/директории для копирования, на противоположной либо приемник, либо шаблон, и жмем кнопку.
Если приемник будет один, то без проблем. Если приемников будет несколько, как в п.3 у barin-а, то нужно загнать в файл список выделенных файлов\папок на противоположной панели. Средствами TC этого сделать нельзя - Гислер не сделал параметра нападобие %L для пассивной панели :((( Для этих целей в vbs можно использовать соответствующий макрос из TCScript.Helper.
Нет, я не сплю. Я просто медленно моргаю.
barin
Сообщения: 5
Зарегистрирован: Пт мар 27, 2009 23:14

Сообщение barin »

спасибо! но к сожалению я смогу попробовать в понедельник - получаю новыйй комп и надеюсь он будет побыстрее предшественника )
кстати почему-то не присылается на мыло что написали ответ на форуме
hawk777
Сообщения: 61
Зарегистрирован: Сб дек 27, 2008 13:16

Сообщение hawk777 »

Batya, а как сделать чтобы Ваш скрипт не копировал файлы, а перемещал их?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

hawk777 писал(а):Batya, а как сделать чтобы Ваш скрипт не копировал файлы, а перемещал их?
Поменяй в скрипте, где встречается CopyHere (в 3-х местах), на MoveHere.
Нет, я не сплю. Я просто медленно моргаю.
hawk777
Сообщения: 61
Зарегистрирован: Сб дек 27, 2008 13:16

Сообщение hawk777 »

Ошибка :(

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

---------------------------
Windows Script Host
---------------------------
Сценарий:	C:\Program Files\Total Commander\Utils\WHS\spisok.vbs
Строка:	317
Символ:	3
Ошибка:	Недопустимый вызов или аргумент процедуры
Код:	800A0005
Источник: 	Ошибка выполнения Microsoft VBScript

---------------------------
ОК   
---------------------------
Параметры так надо прописывать %P%N d:\download\ 2 ?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

hawk777 писал(а):Параметры так надо прописывать %P%N d:\download\ 2 ?
Нет. Вместо %P%N нужно %L.
Нет, я не сплю. Я просто медленно моргаю.
hawk777
Сообщения: 61
Зарегистрирован: Сб дек 27, 2008 13:16

Сообщение hawk777 »

Batya, Когда меняю на %L перемещается сам файл-список, а надо чтобы было так
Batya писал(а):* Копирование файлов\папок из файла-списка под курсором в указанную целевую папку:%P%N {целевая папка} [{режим копирования}]
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Ааа... Так список заранее задан. Тогда параметры %P%N d:\download\ 2 правильные.

Разбираемся с ошибкой.
1. Что у тебя в строке 317?
2. Разбей файл-список на несколько частей, чтобы в каждой части было всего несколько строк. Для файла-списка, по которому выдаётся ошибка, нужно определить, на какой строке скрипт ругается. Для этого...
3. Если у тебя в строке 317

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

  GetPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
втавь перед этой строкой строку с кодом

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

MsgBox """" & pPath & """"
Это добавит отладочное сообщение, которое будет показывать путь к файлу, на котром функция выдаёт ошибку.
4. Покажи здесь путь, выдающий ошибку.
Нет, я не сплю. Я просто медленно моргаю.
hawk777
Сообщения: 61
Зарегистрирован: Сб дек 27, 2008 13:16

Сообщение hawk777 »

1.

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

GetPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
Если разбить файл-список, он обрабатывается без ошибок. Правда в конце выскакивает окошко

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

 ---------------------------
Копирование из файла-списка
---------------------------
Ничего не удалось скопировать.


---------------------------
ОК   
---------------------------
и копируются не все файлы (из 30000--29000). думаю может из размера файла или большого количества строк (строк 130000 размер около 9 Мб). режу файл по 30000 строк, так и работаю :)
Альваро
Сообщения: 4
Зарегистрирован: Вт фев 28, 2012 09:50

Сообщение Альваро »

Здраствуйте, по ссылке ниже написан скрипт где он ищет и копирует файлы из списка.тхт, но я так понимаю путь к файлам должен иметь вид С:\папка1\папка2\папка3\НужныйФайл.exe.
Можно ли изменить данный код, чтобы список имел вид:
файл1*.exe
файл2*.exe
файл3*.exe
А скрипт нашел эти файлы в c:\база данных\ во всевозможных подкаталогах и скопировал в активное окно ТС.
Двух файлов с одинаковым именем но в разных папка быть не может, но могут быть файл1.ехе и файл1(new).ехе, нужны оба.
Заранее благодарен.

Ссылка
Последний раз редактировалось Альваро Вт фев 28, 2012 12:15, всего редактировалось 2 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Альваро писал(а):Извеняюсь за неудобство сплошного текста, постить ссылки не могу
К прочтению.
Альваро писал(а):где он ищет и копирует файлы из списка.тхт
Ничего он не ищет.
Альваро писал(а):чтобы список имел вид
Список со звёздочками? Таких имён не бывает. А если речь о задании маски, то в скрипте это роли не сыграет.
Альваро писал(а):но могут быть файл1.ехе и файл1(new).ехе, нужны оба.
Если есть файлы с такими названиеми, то они так и скопируются.
Последний раз редактировалось Flasher Вт фев 28, 2012 13:39, всего редактировалось 1 раз.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Альваро
Безотносительно к последующей правке поста — замечание за нарушение правил форума (оверквотинг в размерах, переходящих все рамки приличий). См. также о цитировании скриптов здесь. Правильный порядок действий описан по ссылке в предыдущем посте. Можно было также упомянуть страницу, где дан в соответствующей теме скрипт. Можно было связаться с модератором через ЛС и заранее решить проблему. Но уж никак не то, что было сделано!

Ссылка на скрипт дана в приличном виде.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Альваро
Сообщения: 4
Зарегистрирован: Вт фев 28, 2012 09:50

Сообщение Альваро »

Flasher, когда писал звездочки я имел в виду что написаное имя Файл1 может быть конечным, или файл1(new), заместо нью может быть любой коментарий к файлу, или же оба сразу в разных папках диска. Моя задача отличается от задачи решеной Batya, тем что неизвостно точное имя и местоположение, а только начало названия.
Ответить