View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Feb 15, 2017 14:29 Post subject: |
|
|
BeardFury78
Не. Мы проверяем изменение названия файлов, а не папок, длины которых не меняются. Т.е. проверяем рабочие условия. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Wed Feb 15, 2017 14:42 Post subject: |
|
|
Flasher
Так, а разве в длину имени файлов не входят и пути папок? Я же это и делаю - проверяю рабочие условия, увеличивая длину путей перед запуском скрипта, чтобы проверить на работоспособность при обработке папки с файлами, у которых длина путей больше 259 символов. Или нужно вручную изменять длину названия файлов?
Вернул название папки до прежнего уровня, поставил впереди цифры в счетчике, так чтобы название потенциально переименовываемого файла вместе с описанием занимало больше 259 символов и выдало тоже самую ошибку "недопустимый вызов или аргумент процедуры" и номер строки то же самый. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Feb 15, 2017 14:48 Post subject: |
|
|
BeardFury78
Рабочие условия - те, в которых это нужно делать. Т.е. той структуре, которая обрабатывается. Там нет длинных папок. Меняются только имена файлов скриптом. Зачем же вручную?
И что-то непонятное с этими путями. Там же длины по 258 символов... _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Wed Feb 15, 2017 15:00 Post subject: |
|
|
Flasher
Так вы же вроде говорили, что надо тестировать на структуре, файлы, которых имеют 260+ символов в пути. Вот и я тестировал длину путей, меняя то название папки, то названия файлов перед запуском скрипта.
Quote: | И что-то непонятное с этими путями. Там же длины 258 символов... |
Те файлы, что переименовались, да имеют, но обратите внимание на файл, который не переименовался, там еще дополнительно есть "_r1_", который увеличивает длину базового имени по сравнению с именами файлов, которые входят в ту же группу, так что при добавлении описания к нему получается больше 260 символов. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Feb 15, 2017 15:05 Post subject: |
|
|
BeardFury78
Нет. Я пишу про тесты, после которых длина изменится на 260+, а не была такой изначально.
BeardFury78 wrote: | который не переименовался | А, ясно... _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Wed Feb 15, 2017 15:08 Post subject: |
|
|
Flasher
Я уже сократил название папки, увеличил имя исходного файла, Тотал предупредил что имя больше 259 символов и большинство программ не могут обратиться, я подтвердил переименовывание, убрал описания в названиях других файлов, оставив только базовое имя, запустил скрипт и он выдает ту же самую ошибку, про которую я сообщал. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Feb 15, 2017 15:27 Post subject: |
|
|
Flasher wrote: | Меняются только имена файлов скриптом. Зачем же вручную? |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Wed Feb 15, 2017 15:51 Post subject: |
|
|
Flasher
Боюсь, обсуждение зашло в тупик. Попробую еще раз. Вы сказали, что нужно тестировать работу скрипта на структурах, у которых исходный файл (так я называю файл, описание в названии которого нужно передать другим файлам) имеет название, вместе с длиной пути превышающий лимит 260+ символов. И это название надо передать другим файлам, входящим в ту же группу и имеющие только базовые имена. Для этой цели я в корневом диске создал папку, в нем еще одну папку и еще одну папку в нем, там создал пустые файлы с названиями, скопированных в названиях файлов, что я выложил выше. Но дело в том, что с самого начала длина путей была меньше 259 символов, а тестировать нужно 260+, чтобы тестировать работоспособность скрипта на структуре, у которой есть исходные файлы, с названием больше 260 символов и файлы с только базовыми именами. Решил сначала пойти путем увеличения названия папки, на котором файлы располагались - получилась длина путей 260+ у исходного файла. После того как вы сказали, что папки не надо переименовать, тогда для того чтобы длина путей у исходного файла была 260+ добавлял цифры и буквы к названию этого файла и он получил длину 260+ и соответственно такое название исходного файла, за исключениям счетчика, должны получить файлы с базовыми именами и у них тоже будут 260+ символов в путей. И запустил скрипт, на котором вылезает ошибка, про которую я уже сказал. Больше разжевато я уже не могу описать. Может дело в том, что я что-то не понял, не понял исходные цели тестирования, тогда укажите, что нужно на самом деле тестировать и каким образом. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Feb 15, 2017 16:07 Post subject: |
|
|
BeardFury78 wrote: | Вы сказали, что нужно тестировать работу скрипта на структурах, у которых исходный файл (так я называю файл, описание в названии которого нужно передать другим файлам) имеет название, вместе с длиной пути превышающий лимит 260+ символов. | Да где я такое писал? Если вполне чётко сформулировал: Flasher wrote: | Я пишу про тесты, после которых длина изменится на 260+ | Скрипт сам меняет на длинные пути. Вручную этого делать не надо. Тест заключается в подгоне условий так, чтобы из 259- скрипт создавал 260+. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Wed Feb 15, 2017 16:25 Post subject: |
|
|
Quote: | Тест заключается в подгоне условий так, чтобы из 259- скрипт создавал 260+. |
То есть, это когда вот так:
Quote: | g:\TumblThree-v1.0.4.15\TumblThree\Blogs\adulsss\tumblr_mnjbhcWuVV1qibqomo1_r123_1280.gif
g:\TumblThree-v1.0.4.15\TumblThree\Blogs\adulsss\tumblr_mnjbhcWuVV1qibqomo2_r123_1280.gif
g:\TumblThree-v1.0.4.15\TumblThree\Blogs\adulsss\tumblr_mnjbhcWuVV1qibqomo3_r123_1280.gif
g:\TumblThree-v1.0.4.15\TumblThree\Blogs\adulsss\tumblr_mnjbhcWuVV1qibqomo4_r123_1280.gif
g:\TumblThree-v1.0.4.15\TumblThree\Blogs\adulsss\tumblr_mnjbhcWuVV1qibqomo5_r123_1280.gif
g:\TumblThree-v1.0.4.15\TumblThree\Blogs\adulsss\tumblr_mnjbhcWuVV1qibqomo7_r123_1280.gif
g:\TumblThree-v1.0.4.15\TumblThree\Blogs\adulsss\tumblr_mnjbhcWuVV1qibqomo6_1280 kawagane - reblog Lorena B Lorena Garcia is a very spicy Latina adult and glamour model She has a nice tall body with all the 5555555555dangerous Latina curves Lorena is stud.gif |
Исходный файл содержит только 259 символов в полном пути, а другие имена имеют еще "_r123", что получается +4 символов к пути и скрипт следовательно переименовывает их и такие имена будут иметь 263 символов в пути? Так уже прописал такое в именах файлов и запустил скрипт и он выдает ту же ошибку. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Feb 15, 2017 16:34 Post subject: |
|
|
BeardFury78
А почему он исходный, если он уже вроде как переименованный? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Wed Feb 15, 2017 16:40 Post subject: |
|
|
Flasher
Он не переименованный вообще скриптом, это скрипт должен взять это описание из названия файла и добавить описание к другим файлам, которые содержат только общий для файлов в группе идентификатор. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Feb 15, 2017 21:28 Post subject: |
|
|
BeardFury78
Так'с. Сейчас посмотрел, что там. Напрямую действительно не получается переименовать. Тогда так попробуем:
Code: | '================================ VBS ================================
' Добавка к именам файлов в структуре активного каталога отсутствующих
' описаний, имеющихся в конце имени одного файла cхожей именной группы
'
' Условие: путь запуска - пустой
'=====================================================================
Option Explicit: Dim ShA, Stm, Dic, FSO, Rgx, Reg, CD
Set ShA = CreateObject("Shell.Application")
Set Stm = CreateObject("SAPI.SpFileStream")
Set Dic = CreateObject("Scripting.Dictionary")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Rgx = New RegExp : Rgx.Pattern = "^[^ ]+?\d+_\d+\.[A-z]{1,4}$"
Set Reg = New RegExp : Reg.Pattern = "^([^ ]+?)\d+_\d+( .+\.)[A-z]{1,4}$"
CD = FSO.GetAbsolutePathName("")
If CD = FSO.GetParentFolderName(WScript.ScriptFullName) Then WScript.Quit
ForFolder CD: MsgBox "Выполнено!", 4160, " Групповое переименование "
Sub ForFolder(Path)
Dim Items, F, N1, N2, Itms, I, NN, Folder, NP, LP, All
Set Items = ShA.NameSpace(Path).Items
Items.Filter 73920, "*_* *.*"
If Items.Count Then
For Each F In Items
If Reg.Test(F) Then
With Reg.Execute(F)(0)
N1 = .Submatches(0) : N2 = .Submatches(1)
End With
If Not Dic.Exists(N1) Then
Set Itms = ShA.NameSpace(Path).Items
Itms.Filter 73920, N1 & "*_*.*"
If Itms.Count > 1 Then
Dic.Add N1, ""
For Each I In Itms
NN = FSO.GetBaseName(I) & N2 & FSO.GetExtensionName(I)
NP = I.Parent.Self.Path & "\" & NN: LP = Len(NP) > 259
If LP Then NP = "\\?\" & NP
If Rgx.Test(I) And Not FSO.FileExists(NP) Then
If LP Then
With Stm
.Format.Type = 1 : .Open I.Path, 0 : .Read All, I.Size
.Close : .Open NP, 3, True : .Write All : .Close
End With : FSO.GetFile(I.Path).Delete
Else FSO.GetFile(I.Path).Name = NN End If
End If
Next
End If
End If
End If
Next: Dic.RemoveAll
End If: Items.Filter 73888, "*" : If Items.Count Then _
For Each Folder In Items : ForFolder Folder.Path : Next
End Sub |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Thu Feb 16, 2017 02:02 Post subject: |
|
|
Flasher
Переименовывает все корректно, и при 260+ длине путей и при меньше 260 символов длины путей тоже. Спасибо за исправления! |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Feb 16, 2017 02:51 Post subject: |
|
|
BeardFury78 wrote: | и при 260+ длине путей | Результирующих имеется в виду? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|