Страница 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 секунд после запуска. Спасибо!