Переместить файлы по маске в папки, соответствующие маскам

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

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

Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

Flasher
Теперь пишет ошибку:
Строка: 36
Символ: 44
Ошибка: Файл уже существует
Код: 800A003A
Источник: Ошибка выполнения Microsoft VBScript
Запускаю скрипт на папке, нету подпапок, только файлы лежат. Кажется это проблема связана с тем, что есть 2 и больше файлов, которые соответствуют одной маске. Если одной маске соответствует только один файл, то ошибка не появляется. И еще один баг заметил, не отправляются файлы, названия у которых не соответствуют регистрам масок. То есть, если названия файлов сделать капсом, а маски только строчным, то они не отправляются в папки.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Hjkma
Наоборот. 36 строка касается маски без *, т. е. как раз ситуации, при которой возможно одно ссответствие.
Регисрозависимость убрал.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

Flasher
Я имею в виду маски с *, у меня все маски с *. Ошибка все еще присутствует. Проблема с регистрозависимостью снялась.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Hjkma
Судя по тому, что маски задавались в другом числе строк, то было бы логично указать не номер строки, а саму строку.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

Flasher
С новым вариантом это уже строка 37, вот
If Not .FolderExists(OPath) Then .CreateFolder OPath
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Hjkma
В исходнике 39-я. Нужен пример источника, нескольких файлов в нём и получателя.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

Flasher
До запуска скрипта (навожу курсор на папку test):
d:\test\31724013194 - anri sugihara_3.jpg
d:\test\31724013194 - anri sugihara_4.jpg
d:\test\31724013194 - anri sugihara_5.jpg
После запуска ошибка, только один файл отправляется:
d:\test\*anri sugihara*\31724013194 - anri sugihara_3.jpg
d:\test\31724013194 - anri sugihara_4.jpg
d:\test\31724013194 - anri sugihara_5.jpg
Про источник и получатель не понял. Если имеются в виду панели, то я просто в одной панели навожу на папку и файлы отправляются внутри этой папки в подпапки (сейчас только по одному файлу в одну папку).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Hjkma
Исправил.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

Flasher
Запустил новый вариант скрипта на папке, содержащем большое количество файлов, и вылезла ошибка, на этот раз другая:
Строка: 44
Символ: 43
Ошибка: Недопустимый вызов или аргумент процедуры
Строка 44 у меня вот эта:
CreateForLong IPath, FPath Else .MoveFile IPath, FPath
Локализировать ошибку сходу не удалось. Пробовал запустить скрипт на папке с небольшим количеством файлов, не вылезла ошибка и файлы отправились в подпапки. Пробовал повторно запустить скрипт на том самом папке с большим количеством файлов, снова та же ошибка. Завтра попробую перебирать маски и файлы, попробую выяснить на чем скрипт спотыкается.
upd. Кажется, понял. Проблема с файлами, с длиной пути меньше 259 символов, но, которые будут иметь длину больше 259 символов, если они переместятся в подпапки с названиями масок. Файлы с длиной пути больше 259 символов перемещаются нормально.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Hjkma
Неполная правка была. Строкой выше заменил OPath на FPath.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Hjkma
Сообщения: 178
Зарегистрирован: Сб апр 18, 2015 01:26

Сообщение Hjkma »

Flasher
Запустил и все успешно отправилось. Теперь скрипт работающий. Большое вам спасибо за помощь, скрипт и терпение!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Hjkma
Чуть ранее ещё одной строкой выше кое-что добавлял на всякий.
На доброе пользование. Изображение
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить