Страница 5 из 9

Добавлено: Пн мар 30, 2009 13:02
Batya
barin
В файле FoldersList.txt каждой\му выделенной\му папке\файлу соответствует отдельная строка - папка назначения.

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

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

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

Я потреял нить задачи в тот момент, когда Batya эту нить подхватил. Так что вопрос обоим: можно ли решить задачу, только выделяя файлы/директории на панелях?

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

Добавлено: Пт апр 03, 2009 16:29
barin
спасибо! но к сожалению я смогу попробовать в понедельник - получаю новыйй комп и надеюсь он будет побыстрее предшественника )
кстати почему-то не присылается на мыло что написали ответ на форуме

Добавлено: Ср фев 23, 2011 21:33
hawk777
Batya, а как сделать чтобы Ваш скрипт не копировал файлы, а перемещал их?

Добавлено: Чт фев 24, 2011 10:06
Batya
hawk777 писал(а):Batya, а как сделать чтобы Ваш скрипт не копировал файлы, а перемещал их?
Поменяй в скрипте, где встречается CopyHere (в 3-х местах), на MoveHere.

Добавлено: Чт фев 24, 2011 10:33
hawk777
Ошибка :(

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

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

---------------------------
ОК   
---------------------------
Параметры так надо прописывать %P%N d:\download\ 2 ?

Добавлено: Чт фев 24, 2011 11:45
Batya
hawk777 писал(а):Параметры так надо прописывать %P%N d:\download\ 2 ?
Нет. Вместо %P%N нужно %L.

Добавлено: Чт фев 24, 2011 12:50
hawk777
Batya, Когда меняю на %L перемещается сам файл-список, а надо чтобы было так
Batya писал(а):* Копирование файлов\папок из файла-списка под курсором в указанную целевую папку:%P%N {целевая папка} [{режим копирования}]

Добавлено: Чт фев 24, 2011 13:09
Batya
Ааа... Так список заранее задан. Тогда параметры %P%N d:\download\ 2 правильные.

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

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

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

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

MsgBox """" & pPath & """"
Это добавит отладочное сообщение, которое будет показывать путь к файлу, на котром функция выдаёт ошибку.
4. Покажи здесь путь, выдающий ошибку.

Добавлено: Чт фев 24, 2011 16:02
hawk777
1.

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

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

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

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


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

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

Ссылка

Добавлено: Вт фев 28, 2012 12:03
Flasher
Альваро писал(а):Извеняюсь за неудобство сплошного текста, постить ссылки не могу
К прочтению.
Альваро писал(а):где он ищет и копирует файлы из списка.тхт
Ничего он не ищет.
Альваро писал(а):чтобы список имел вид
Список со звёздочками? Таких имён не бывает. А если речь о задании маски, то в скрипте это роли не сыграет.
Альваро писал(а):но могут быть файл1.ехе и файл1(new).ехе, нужны оба.
Если есть файлы с такими названиеми, то они так и скопируются.

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

Ссылка на скрипт дана в приличном виде.

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