Страница 39 из 52
Добавлено: Пт дек 09, 2016 06:25
Flasher
BeardFury78 писал(а):Вы же этот вопрос раньше задавали.
Где?
Добавлено: Пт дек 09, 2016 06:27
BeardFury78
Могут быть файлы с тем же идентификатором, но с другими расширениями и их не нужно трогать?
Разве не об этом речь?
Добавлено: Пт дек 09, 2016 06:30
Flasher
Нет. Это совсем два разных вопроса. Сейчас я спрашиваю про принадлежность к группе разных расширений, а не о наличии файлов, которые не нужно трогать.
Добавлено: Пт дек 09, 2016 06:32
BeardFury78
Flasher
Если я вас правильно понял, то да.
Вот для примера эти файлы:
msd4cgI2f11sn8lbmo1_540 Battlestar.jpg
msd4cgI2f11sn8lbmo2_500.jpg
msd4cgI2f11sn8lbmo3_400.jpg
msd4cgI2f11sn8lbmo4_400.png
Добавлено: Пт дек 09, 2016 07:11
Flasher
BeardFury78
Можно проверять.
Добавлено: Пт дек 09, 2016 07:33
BeardFury78
Flasher
Потестил, похоже скрипт не переименовывает файлы, если внутри описания содержится число. Можно ли убрать это ограничение?
Добавлено: Пт дек 09, 2016 07:38
Flasher
BeardFury78
Убрал.
Добавлено: Пт дек 09, 2016 07:44
BeardFury78
Flasher
Спасибо. Еще заметил, что некоторые файлы с идентификаторам, которые содержат знак "_", не переименовались. Если заменить этот знак на "-", то переименовываются.
Примеры таких файлов
lporhb_R8fqqastw5o1_500 thesethingsiveseen day trooper.jpg
lporhb_R8fqqastw5o2_500.jpg
lporhb_R8fqqastw5o3_540.jpg
lporhb_R8fqqastw5o4_540.jpg
lporhb_R8fqqastw5o5_540.jpg
Добавлено: Пт дек 09, 2016 07:47
Flasher
BeardFury78
Тоже стоял блок. Убрал. Надеюсь, хоть пробелов там не бывает.

Добавлено: Пт дек 09, 2016 07:50
BeardFury78
Flasher
Вот теперь все работает замечательно! Спасибо большое за ваш труд!
Добавлено: Вт фев 14, 2017 07:00
BeardFury78
Сегодня запускал
этот скрипт и вылезло окно ошибки "Строка: 35, Символ: 37" и текст ошибки "Путь не найден". Вот эта строка:
Path & "\" & NN) Then FSO.GetFile(I.Path).Name = NN
До этого месяц назад и два месяца назад запускал скрипт для больших структур папок и файлы успешно переименовались, а сегодня скрипт остановился на самом начале, на другом структуре папок. Похоже проблема какая-то с именами папок, но понять, чья папка вызвала эту ошибку, сложно, т.к. папок много, численностью от 450. С виду вроде все папки имеют нормальные названия, только с латинскими буквами и цифрами. Пробовал в другую папку для теста скопировать первые папки и с ними запускать скрипт и файлы в них успешно переименовываются, добавлял к ними другую группу папок и с этими папками скрипт справился. А с папкой, где лежат 450+ папок, скрипт выдает ту же самую ошибку. Сейчас устал и ложусь спать, завтра (сегодня) еще раз попробую методом перебора выявить виновника.
Добавлено: Вт фев 14, 2017 14:14
Flasher
Вероятно, там есть пути к файлам, имеющие > 259 символов.
Добавлено: Вт фев 14, 2017 17:17
BeardFury78
Flasher
Перенес все файлы с длиной пути более 259 символов в другое место и еще раз запустил скрипт в прежнее место, опять та же ошибка. Кстати, раньше когда запускал скрипт, у меня были файлы с длиной пути более 259 символов, тогда при переходе к таким файлам скрипт просто останавливался, без всяких окошек ошибок, без предупреждения. Так что, это не оно.
Добавлено: Вт фев 14, 2017 17:50
Flasher
BeardFury78
Вместо
Код: Выделить всё
If Rgx.Test(I) And Not FSO.FileExists(I.Parent.Self._
Path & "\" & NN) Then FSO.GetFile(I.Path).Name = NN
пишем:
Код: Выделить всё
On Error Resume Next
If Rgx.Test(I) And Not FSO.FileExists(I.Parent.Self._
Path & "\" & NN) Then FSO.GetFile(I.Path).Name = NN
If Err.Number <> 0 Then S = S & vbCr & I.Path
On Error GoTo 0
А над Sub ForFolder(Path) вставить: WSH.Echo S
После отработки скрипт покажет проблемные пути.
Добавлено: Вт фев 14, 2017 17:57
BeardFury78
Flasher
Странно, но как только отредактировал скрипт, так сейчас ошибка не появляется и скрипт работает сейчас, переименовывает файлы, раньше останавливался с ошибкой спустя 30-45 секунд после запуска. Спасибо!