Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Групповое переименование
Goto page Previous  1, 2, 3 ... 36, 37, 38 ... 49, 50, 51  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Oct 14, 2016 01:18    Post subject: Reply with quote

myscience wrote:
Думаю добавить колонку размер файла, и при его совпадении проверять хеш, и уже тогда переименовывать.
Т.е. при несовпадении, я полагаю, тоже?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
myscience



Joined: 22 Mar 2016
Posts: 21

Post (Separately) Posted: Fri Oct 14, 2016 20:12    Post subject: Reply with quote

Нет, если совпал размер байтах, то проверяем хеш. Если совпал хеш, то рекурсивно переименовываем. Остальные варианты игнорируются.
По ссылке http://rgho.st/8NccMvghD пример файла ex1.csv.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Oct 15, 2016 02:11    Post subject: Reply with quote

Как это игнорируются? Shocked Размер одного файла ни с каким другим не совпадает. Зачем ещё и хэш проверять?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
myscience



Joined: 22 Mar 2016
Posts: 21

Post (Separately) Posted: Sat Oct 15, 2016 02:41    Post subject: Reply with quote

Flasher wrote:
Как это игнорируются?

С файлами ничего не происходит, т.е. не переименовываются и не расчитывается их хеш.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Oct 15, 2016 03:31    Post subject: Reply with quote

Это глупо. Зачем вообще в таком случае использовать размер?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
myscience



Joined: 22 Mar 2016
Posts: 21

Post (Separately) Posted: Sun Oct 16, 2016 01:08    Post subject: Reply with quote

Как зачем? Чтобы не считать хеш для файлов разных размеров и, таким образом, ускорить работу.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Oct 16, 2016 01:27    Post subject: Reply with quote

Да тогда основная масса файлов (если не вся) вообще не будет переименована. Неужели не ясно? В этом нет никакого смысла.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Fri Dec 09, 2016 03:38    Post subject: Reply with quote

Приветствую всех. Нужна помощь, сам не соображу как быть. Есть изображения, которые являются частью фотосетов, их названия состоят из уникального набора букв и цифр (которые являются идентификаторами фотосетов) с окончаниям на "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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Dec 09, 2016 03:54    Post subject: Reply with quote

BeardFury78
Описание ТЗ чересчур избыточно и без размежевания по пунктам сложно воспринимается. Попробую сам:
1. Есть структура каталогов с файлами. В некоторых каталогах есть файлы, с совпадающим началом в базовых именах за вычетом счётчика перед _1280 или 1_500.
2. Файлы с номером 1 в счётчике имеют в базовом имени <пробел>постфикс (описание).
3. Этот <пробел>постфикс (описание) нужно добавить к базовым именам следующих по счетчику файлов в именных группах.

Верно понято?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Fri Dec 09, 2016 04:02    Post subject: Reply with quote

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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Dec 09, 2016 04:06    Post subject: Reply with quote

Ясно. Ищем в выбранных каталогах или во всех по фильтру?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Fri Dec 09, 2016 04:08    Post subject: Reply with quote

Flasher
Пусть будет во всех подпапках в активном каталоге.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Dec 09, 2016 05:39    Post subject: Reply with quote

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
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 213

Post (Separately) Posted: Fri Dec 09, 2016 05:58    Post subject: Reply with quote

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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Dec 09, 2016 06:00    Post subject: Reply with quote

BeardFury78
Нет. Я код слегка правил, накосячил при вставке. Вернул как было.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 36, 37, 38 ... 49, 50, 51  Next
Page 37 of 51

 
Jump to:  
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