View previous topic :: View next topic |
Author |
Message |
sa
Joined: 29 Apr 2009 Posts: 2571
|
(Separately) Posted: Thu Feb 04, 2016 12:03 Post subject: |
|
|
Eug63
Оффтопный вариант с переименованием ручками.
Выделить (лучше в отдельной папке) все файлы со сбоем в 1 час и в инструменте группового переименования (сокращённо ИГП, вызывается по Ctrl+M) Найти: пробел23 и Заменить на: пробел24, Enter, F5, затем Найти: пробел22 и Заменить на: пробел23, Enter, F5 и т.д. до Найти: пробел00, Заменить на: пробел01, Enter. После этого выделить в папке уже только те файлы, что содержат пробел24, запустить ИГП и более вдумчиво (начиная с более свежих) менять их имена, а именно: Найти: датапробел24 и Заменить на: следующая_датапробел00, Enter, F5. Проводить эксперименты только на резервной копии(!) файлов, вместо слова пробел вводить символ пробела. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Feb 04, 2016 13:13 Post subject: |
|
|
Шут с этими свистоплясками. Готовое решение без утилит:
Code: | '============================================== VBS ===============================================
' Прибавить/отнять часы, минуты, секунды в датах базовых имён файлов в структуре активного каталога
' Разделителем величин в исходном формате базового имени может быть дефис, пробел или точка.
' Примеры форматов базовых имён: yyyy-MM-dd HH-mm-ss; yyyy.MM.dd HH-mm-ss; dd-MM yyyy HH mm.ss
' Условие: путь запуска - пустой
' Параметры: [-<часы>] [-<минуты>] [-<секунды>] <фильтр-список расширений> <вкл/выкл рекурсию:1/0>
' Примеры: 1 0 0 *.jpg;*.jpeg 1
' 4 -5 -3 *.mp3;*.flac;*.ogg 0
'==================================================================================================
Option Explicit : Dim H, M, S, Filt, Recur, Shell, Regex, FSO
Const Title = " Правка даты в именах файлов "
With WScript.Arguments
If .Count <> 5 Then MsgBox "Укажите 5 параметров!", 4144, Title : WScript.Quit
H = .Item(0) : M = .Item(1) : S = .Item(2) : Filt = .Item(3) : Recur = .Item(4)
End With
Set Shell = CreateObject("Shell.Application")
Set Regex = New Regexp : Regex.IgnoreCase = True
Set FSO = CreateObject("Scripting.FileSystemObject")
Regex.Pattern = "^(\d{2,4})([ -\.])(\d{2})([ -\.])(\d{2,4} +\d{2})([ -\"&_
".])(\d{2})([ -\.])(\d{2})(.(" & Replace(Mid(Filt, 3), ";*.", "|") & "))$"
FFolder CreateObject("WScript.Shell").CurrentDirectory
MsgBox " Выполнено!", 4160, Title
Sub FFolder(Folder)
Dim Items, F, N, Ext, D, Dy, Mh, Hr, Mn, Sc, n1, n2, Fd
Set Folder = Shell.NameSpace(Folder)
Set Items = Folder.Items
Items.Filter 8384, Filt
If Items.Count Then
For Each F In Items
N = FSO.GetFileName(F.Path)
With Regex
If .Test(N) Then
Ext = "" : If N = F.Name Then Ext = .Replace(N,"$10")
D = CDate(.Replace(N, "$1$2$3$4$5:$7:$9")) + TimeSerial(H,M,S)
Dy = Day(D) : Mh = Month(D) : Hr = Hour(D) : Mn = Minute(D)
Sc = Second(D) : Call AddNull(Dy)(Mh)(Hr)(Mn)(Sc)
If Len(.Replace(N,"$1")) = 4 Then n1 = 2 : n2 = 4 Else n1 = 4 : n2 = 2
F.Name = Year(D) & .Replace(N, "$" & n1) & Mh & .Replace(N,"$" & n2)&_
Dy & " " & Hr & .Replace(N, "$6") & Mn & .Replace(N, "$8") & Sc & Ext
End If
End With
Next
End If
If Recur = 1 Then
Items.Filter 8352, "*"
For Each Fd In Items : FFolder Fd.Path : Next
End If
End Sub
Function AddNull(DateT)
DateT = Right("0" & DateT, 2) : Set AddNull = GetRef("AddNull")
End Function |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Fri Feb 05, 2016 11:23; edited 1 time in total |
|
Back to top |
|
|
Eug63
Joined: 01 Feb 2016 Posts: 13
|
(Separately) Posted: Fri Feb 05, 2016 05:58 Post subject: |
|
|
sa wrote: | Судя по примерам от 2014 и 2012 годов, время было сбито не в одной фотосессии, а на протяжении несколько лет... |
это просто случайные примеры, сбито было в течении 1 недели летом 2016, около 3000 снимков.
Flasher wrote: | А ничего, что приведённая мной утилита меняет все 3 типа дат? И для powershell это не проблема:
Код:
gci D:\MyFotos\ -include *.jpg -Recurse -Force|%{$_.CreationTime=$_.CreationTime.AddHours(1)} |
Это то что надо)))
Большое спасибо всем за помощь))) |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Feb 05, 2016 06:06 Post subject: |
|
|
Eug63 wrote: | Это то что надо))) | В случае vbs-скрипта менять дату не требуется, плюс файлы с другими именами затронуты не будут. Не говоря о других плюсах (в частности указанных в шапке). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Eug63
Joined: 01 Feb 2016 Posts: 13
|
(Separately) Posted: Fri Feb 05, 2016 06:41 Post subject: |
|
|
Flasher
Попробовал скрипт, тоже нужная вещь, иногда хронологию надо менять), но у меня не заработало, пишет "Выполнено", а файлы остаются без изменений.
Добавлено спустя 8 минут:
Win7 x64
TC (x64) 8.51a
Last edited by Eug63 on Fri Feb 05, 2016 08:53; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Feb 05, 2016 07:27 Post subject: |
|
|
Eug63
Как скриптами пользоваться известно? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Eug63
Joined: 01 Feb 2016 Posts: 13
|
(Separately) Posted: Fri Feb 05, 2016 08:35 Post subject: |
|
|
Flasher
Сделал все по памятке, кроме пункта 4
Last edited by Eug63 on Fri Feb 05, 2016 08:40; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Feb 05, 2016 08:38 Post subject: |
|
|
Eug63
Условие шапки выполнено? Если да, то строку параметров можно увидеть? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Eug63
Joined: 01 Feb 2016 Posts: 13
|
(Separately) Posted: Fri Feb 05, 2016 08:42 Post subject: |
|
|
Flasher
Скопировано из шапки:
1 0 0 *.jpg;*.jpeg 1
Last edited by Eug63 on Fri Feb 05, 2016 08:47; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Feb 05, 2016 08:45 Post subject: |
|
|
Хотелось бы всё же ответ на первый вопрос получить.
P.S.: Касаемо отсутствующих точек и заглавных букв - не забывайте, что у нас форум, а не чат, пишите грамотно. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Eug63
Joined: 01 Feb 2016 Posts: 13
|
(Separately) Posted: Fri Feb 05, 2016 08:52 Post subject: |
|
|
Flasher
Путь запуска пустой.
Имена файлов в формате, который я приводил в качестве примера.
Last edited by Eug63 on Fri Feb 05, 2016 08:55; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Feb 05, 2016 08:55 Post subject: |
|
|
Eug63
Хм. Т.е. стоим мы на папке с jpg файлами, жмём кнопку, и ничего в именах не меняется? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Eug63
Joined: 01 Feb 2016 Posts: 13
|
(Separately) Posted: Fri Feb 05, 2016 08:56 Post subject: |
|
|
Flasher
Да. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Feb 05, 2016 09:02 Post subject: |
|
|
Eug63
Странно. Если между 32 и 33 строкой Msgbox True вставить выскочит "Истина"?
Flasher wrote: | стоим мы на папке | Не "на", а "в", разумеется. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Eug63
Joined: 01 Feb 2016 Posts: 13
|
(Separately) Posted: Fri Feb 05, 2016 09:07 Post subject: |
|
|
Flasher
Да, появляется. |
|
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
|