View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Oct 14, 2016 01:18 Post subject: |
|
|
myscience wrote: | Думаю добавить колонку размер файла, и при его совпадении проверять хеш, и уже тогда переименовывать. | Т.е. при несовпадении, я полагаю, тоже? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
myscience
Joined: 22 Mar 2016 Posts: 21
|
(Separately) Posted: Fri Oct 14, 2016 20:12 Post subject: |
|
|
Нет, если совпал размер байтах, то проверяем хеш. Если совпал хеш, то рекурсивно переименовываем. Остальные варианты игнорируются.
По ссылке http://rgho.st/8NccMvghD пример файла ex1.csv. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Oct 15, 2016 02:11 Post subject: |
|
|
Как это игнорируются? Размер одного файла ни с каким другим не совпадает. Зачем ещё и хэш проверять? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
myscience
Joined: 22 Mar 2016 Posts: 21
|
(Separately) Posted: Sat Oct 15, 2016 02:41 Post subject: |
|
|
Flasher wrote: | Как это игнорируются? |
С файлами ничего не происходит, т.е. не переименовываются и не расчитывается их хеш. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Oct 15, 2016 03:31 Post subject: |
|
|
Это глупо. Зачем вообще в таком случае использовать размер? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
myscience
Joined: 22 Mar 2016 Posts: 21
|
(Separately) Posted: Sun Oct 16, 2016 01:08 Post subject: |
|
|
Как зачем? Чтобы не считать хеш для файлов разных размеров и, таким образом, ускорить работу. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Oct 16, 2016 01:27 Post subject: |
|
|
Да тогда основная масса файлов (если не вся) вообще не будет переименована. Неужели не ясно? В этом нет никакого смысла. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Fri Dec 09, 2016 03:38 Post subject: |
|
|
Приветствую всех. Нужна помощь, сам не соображу как быть. Есть изображения, которые являются частью фотосетов, их названия состоят из уникального набора букв и цифр (которые являются идентификаторами фотосетов) с окончаниям на "1_500" или "1_1280" (но могут быть и 2_500 или 6_1280). Есть изображения, которые тоже являются частью фотосетов, но в отличии от своих одногруппных изображений, они в добавок к уникальному набору букв и цифр еще имеют текстовое описание содержимого фотосетов. Вот эти описания фотосетов нужно добавить к названиям других изображений, входящие в те же группы фотосетов. Чтобы было понятно о чем речь, приведу примеры:
Quote: | nowlcfDMf31u66m1jo1_1280 Mountain Goverla.jpg
nowlcfDMf31u66m1jo2_1280.jpg
nowlcfDMf31u66m1jo3_1280.jpg
nowo7nTPbv1u1lwmyo1_1280 Sorochyntsi Fair.jpg
nowo7nTPbv1u1lwmyo2_1280.jpg
nowo7nTPbv1u1lwmyo3_1280.jpg
nowo7nTPbv1u1lwmyo4_1280.jpg
noxe9lbYvH1ututj5o1_1280 Kupala.jpg
noxe9lbYvH1ututj5o10_1280.jpg
noxe9lbYvH1ututj5o2_1280.jpg
noxe9lbYvH1ututj5o3_1280.jpg
noxe9lbYvH1ututj5o4_1280.jpg
noxe9lbYvH1ututj5o5_1280.jpg
noxe9lbYvH1ututj5o6_1280.jpg
noxe9lbYvH1ututj5o7_1280.jpg
noxe9lbYvH1ututj5o8_1280.jpg
noxe9lbYvH1ututj5o9_1280.jpg |
Вот это три фотосетов, которые имеют в своем составе одно изображение, имеющее описание в своем названии, которое собственно нужно и добавить к другим названиям файлов. Для уточнения задачи, добавлю, что такие фотосеты лежат в папках вместе с одиночными файлами, не являющие частью фотосетов, их нет смысла переименовать, т.к. нету текстовых описаний к их содержимым. Плюс есть еще фотосеты, составные изображения которых раскиданы по различным папкам. Конечно не будет трудно собрать все изображения в одну папку, если это нужно для переименования.
Возможно ли написать скрипт для решения такой задачи? К вводным добавлю, что абсолютно все изображения, имеющие описания, содержат в названиях пробел после набора букв и цифр и все названия изображениях, которые не имеют описания, ничего не содержат (включая пробелы) помимо набора букв и цифр и расширения. Спасибо. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Dec 09, 2016 03:54 Post subject: |
|
|
BeardFury78
Описание ТЗ чересчур избыточно и без размежевания по пунктам сложно воспринимается. Попробую сам:
1. Есть структура каталогов с файлами. В некоторых каталогах есть файлы, с совпадающим началом в базовых именах за вычетом счётчика перед _1280 или 1_500.
2. Файлы с номером 1 в счётчике имеют в базовом имени <пробел>постфикс (описание).
3. Этот <пробел>постфикс (описание) нужно добавить к базовым именам следующих по счетчику файлов в именных группах.
Верно понято? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Fri Dec 09, 2016 04:02 Post subject: |
|
|
Quote: | 1. Есть структура каталогов с файлами. В некоторых каталогах есть файлы, с совпадающим началом в базовых именах за вычетом счётчика перед _1280 или 1_500. |
Начало совпадает, а вот 1280 или 500 не обязательно встречаются, могут быть _540, _400, _250.
Quote: | 2. Файлы с номером 1 в счётчике имеют в базовом имени постфикс (описание). |
Не обязательно с номером 1, могут быть и другие номера (2,3,4 и так далее)
Quote: | 3. Этот постфикс (описание) нужно добавить к следующим по счетчику файлам в именных группах. |
Могут быть, что постфиксы встретятся в файлах с последним номерным числом (вроде 7,8,9,10). Или в файлах с средним номерным числом (3 или 5).
Пример:
Quote: |
nowlcfDMf31u66m1jo1_1280.jpg
nowlcfDMf31u66m1jo2_1280 Mountain Goverla.jpg
nowlcfDMf31u66m1jo3_1280.jpg
nowo7nTPbv1u1lwmyo1_1280.jpg
nowo7nTPbv1u1lwmyo2_1280.jpg
nowo7nTPbv1u1lwmyo3_1280 Sorochyntsi Fair.jpg
nowo7nTPbv1u1lwmyo4_1280.jpg |
Last edited by BeardFury78 on Fri Dec 09, 2016 04:08; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Dec 09, 2016 04:06 Post subject: |
|
|
Ясно. Ищем в выбранных каталогах или во всех по фильтру? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Fri Dec 09, 2016 04:08 Post subject: |
|
|
Flasher
Пусть будет во всех подпапках в активном каталоге. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Dec 09, 2016 05:39 Post subject: |
|
|
BeardFury78
Включая и активный каталог, я полагаю:
Code: | '================================ VBS ================================
' Добавка к именам файлов в структуре активного каталога отсутствующих
' описаний, имеющихся в конце имени одного файла cхожей именной группы
'
' Условие: путь запуска - пустой
'=====================================================================
Option Explicit: Dim ShA, Dic, FSO, Rgx, Reg, CD
Set ShA = CreateObject("Shell.Application")
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
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)
If Rgx.Test(I) And Not FSO.FileExists(I.Parent.Self._
Path & "\" & NN) Then FSO.GetFile(I.Path).Name = NN
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) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Fri Dec 16, 2016 22:18; edited 12 times in total |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Fri Dec 09, 2016 05:58 Post subject: |
|
|
Flasher
Это два скрипта? Первый пишет, что переменная "ForFolder" не определенная. Второй скрипт только пишет, что "Выполнено!", но почти ничего не переименовалось (только строка lpwpi0Xydl1qby5h2o4_500.jpg переименовалась). Тестил на этих файлах:
Quote: | lporhbR8fq1qastw5o1_500 thesethingsiveseen - I call this one best day.jpg
lporhbR8fq1qastw5o2_500.jpg
lporhbR8fq1qastw5o3_540.jpg
lporhbR8fq1qastw5o4_540.jpg
lporhbR8fq1qastw5o5_540.jpg
lpwpi0Xydl1qby5h2o2_1280.jpg
lpwpi0Xydl1qby5h2o3_1280.jpg
lpwpi0Xydl1qby5h2o4_500 New York the winter.jpg
lpwpi0Xydl1qby5h2o5_540.jpg
lpwpi0Xydl1qby5h2o6_500 New York the winter.jpg
lqiz638ZMr1qk661oo1_500 thedarksideofgruff - just perfect.jpg
lqiz638ZMr1qk661oo2_500.jpg
lqiz638ZMr1qk661oo3_500.jpg
lqiz638ZMr1qk661oo4_500.jpg
lqwdczDRHe1qastw5o1_500 thesethingsiveseen - who needs cheering up and I know.jpg
lqwdczDRHe1qastw5o2_500.jpg
lqwdczDRHe1qastw5o3_500.jpg |
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Dec 09, 2016 06:00 Post subject: |
|
|
BeardFury78
Нет. Я код слегка правил, накосячил при вставке. Вернул как было. _________________ Автору сборки 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
|