Т.е. при несовпадении, я полагаю, тоже?myscience писал(а):Думаю добавить колонку размер файла, и при его совпадении проверять хеш, и уже тогда переименовывать.
Групповое переименование
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Нет, если совпал размер байтах, то проверяем хеш. Если совпал хеш, то рекурсивно переименовываем. Остальные варианты игнорируются.
По ссылке http://rgho.st/8NccMvghD пример файла ex1.csv.
По ссылке http://rgho.st/8NccMvghD пример файла ex1.csv.
Как это игнорируются?
Размер одного файла ни с каким другим не совпадает. Зачем ещё и хэш проверять?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Да тогда основная масса файлов (если не вся) вообще не будет переименована. Неужели не ясно? В этом нет никакого смысла.Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
-
BeardFury78
- Сообщения: 213
- Зарегистрирован: Чт авг 25, 2016 05:24
Приветствую всех. Нужна помощь, сам не соображу как быть. Есть изображения, которые являются частью фотосетов, их названия состоят из уникального набора букв и цифр (которые являются идентификаторами фотосетов) с окончаниям на "1_500" или "1_1280" (но могут быть и 2_500 или 6_1280). Есть изображения, которые тоже являются частью фотосетов, но в отличии от своих одногруппных изображений, они в добавок к уникальному набору букв и цифр еще имеют текстовое описание содержимого фотосетов. Вот эти описания фотосетов нужно добавить к названиям других изображений, входящие в те же группы фотосетов. Чтобы было понятно о чем речь, приведу примеры:
Возможно ли написать скрипт для решения такой задачи? К вводным добавлю, что абсолютно все изображения, имеющие описания, содержат в названиях пробел после набора букв и цифр и все названия изображениях, которые не имеют описания, ничего не содержат (включая пробелы) помимо набора букв и цифр и расширения. Спасибо.
Вот это три фотосетов, которые имеют в своем составе одно изображение, имеющее описание в своем названии, которое собственно нужно и добавить к другим названиям файлов. Для уточнения задачи, добавлю, что такие фотосеты лежат в папках вместе с одиночными файлами, не являющие частью фотосетов, их нет смысла переименовать, т.к. нету текстовых описаний к их содержимым. Плюс есть еще фотосеты, составные изображения которых раскиданы по различным папкам. Конечно не будет трудно собрать все изображения в одну папку, если это нужно для переименования.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
Возможно ли написать скрипт для решения такой задачи? К вводным добавлю, что абсолютно все изображения, имеющие описания, содержат в названиях пробел после набора букв и цифр и все названия изображениях, которые не имеют описания, ничего не содержат (включая пробелы) помимо набора букв и цифр и расширения. Спасибо.
BeardFury78
Описание ТЗ чересчур избыточно и без размежевания по пунктам сложно воспринимается. Попробую сам:
1. Есть структура каталогов с файлами. В некоторых каталогах есть файлы, с совпадающим началом в базовых именах за вычетом счётчика перед _1280 или 1_500.
2. Файлы с номером 1 в счётчике имеют в базовом имени <пробел>постфикс (описание).
3. Этот <пробел>постфикс (описание) нужно добавить к базовым именам следующих по счетчику файлов в именных группах.
Верно понято?
Описание ТЗ чересчур избыточно и без размежевания по пунктам сложно воспринимается. Попробую сам:
1. Есть структура каталогов с файлами. В некоторых каталогах есть файлы, с совпадающим началом в базовых именах за вычетом счётчика перед _1280 или 1_500.
2. Файлы с номером 1 в счётчике имеют в базовом имени <пробел>постфикс (описание).
3. Этот <пробел>постфикс (описание) нужно добавить к базовым именам следующих по счетчику файлов в именных группах.
Верно понято?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
-
BeardFury78
- Сообщения: 213
- Зарегистрирован: Чт авг 25, 2016 05:24
Начало совпадает, а вот 1280 или 500 не обязательно встречаются, могут быть _540, _400, _250.1. Есть структура каталогов с файлами. В некоторых каталогах есть файлы, с совпадающим началом в базовых именах за вычетом счётчика перед _1280 или 1_500.
Не обязательно с номером 1, могут быть и другие номера (2,3,4 и так далее)2. Файлы с номером 1 в счётчике имеют в базовом имени постфикс (описание).
Могут быть, что постфиксы встретятся в файлах с последним номерным числом (вроде 7,8,9,10). Или в файлах с средним номерным числом (3 или 5).3. Этот постфикс (описание) нужно добавить к следующим по счетчику файлам в именных группах.
Пример:
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
Последний раз редактировалось BeardFury78 Пт дек 09, 2016 03:08, всего редактировалось 1 раз.
-
BeardFury78
- Сообщения: 213
- Зарегистрирован: Чт авг 25, 2016 05:24
BeardFury78
Включая и активный каталог, я полагаю:
Включая и активный каталог, я полагаю:
Код: Выделить всё
'================================ 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
Последний раз редактировалось Flasher Пт дек 16, 2016 21:18, всего редактировалось 12 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
-
BeardFury78
- Сообщения: 213
- Зарегистрирован: Чт авг 25, 2016 05:24
Flasher
Это два скрипта? Первый пишет, что переменная "ForFolder" не определенная. Второй скрипт только пишет, что "Выполнено!", но почти ничего не переименовалось (только строка lpwpi0Xydl1qby5h2o4_500.jpg переименовалась). Тестил на этих файлах:
Это два скрипта? Первый пишет, что переменная "ForFolder" не определенная. Второй скрипт только пишет, что "Выполнено!", но почти ничего не переименовалось (только строка lpwpi0Xydl1qby5h2o4_500.jpg переименовалась). Тестил на этих файлах:
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