Страница 2 из 2

Добавлено: Вс июн 10, 2018 08:59
moonbaggi
Flasher Спасибо!
Как я понимаю данной код нужно сохранить в блокнот в формате vbs.
И создать кнопку в меню инструментов?

Добавлено: Вс июн 10, 2018 09:18
Flasher
moonbaggi
Да. Только это панель, а не меню. См. памятку сверху подфорума.

P.S.: Ник вставляется кликом в колонке профиля слева.

P.P.S.: Судя по тому, что bootboy создал схожий запрос (всё та же "Переименовка ...") на другом форуме, со скриптом "справиться" ему, к удивлению, не удалось.

Добавлено: Ср май 17, 2023 22:29
ZorKon71
А можно автоматизировать переименование, если в имени файлов дата?
Например есть:
2022-07-30 16-37-56.mp4
2022-07-30 20-21-53.mp4
2022-07-30 23-19-47.mp4

Нужно прибавить час, т.е. должно получиться:
2022-07-30 17-37-56.mp4
2022-07-30 21-21-53.mp4
2022-07-31 00-19-47.mp4

Как понимаете, простой подстановкой цифр - не получится...

Добавлено: Чт май 18, 2023 10:11
Monarch-LFV
ZorKon71
Да, здесь порстым изменением цифр не обойдешься, здесь нужно преобразовать имя в дату, прибавить час и заново разделить на части и записать в имя. Написал скрипт VBS:

Код: Выделить всё

' Изменяет время в имени файла (прибавляет час)
' например:    2022-07-30 23-37-56.mp4   ->   2022-07-31 00-37-56.mp4
' параметры %WL

on error resume next
Set FSO = CreateObject("Scripting.FileSystemObject") 
FileList = WScript.Arguments(0)
List = Split(FSO.OpenTextFile(FileList,,,-1).ReadAll, vbNewLine)

For Each filename In List
  if filename="" then WScript.Quit ' выход на последней пустой строке
  fn = FSO.GetBaseName(filename) ' Имя файла
  ext="." & FSO.GetExtensionName(filename) ' расширение файла
  
  Dy1=mid(fn, 1, 4): Dm1=mid(fn, 6, 2): Dd1=mid(fn, 9, 2) ' вычленяем из имени дату (год, месяц, день)
  Th1=mid(fn, 12, 2): Tm1=mid(fn, 15, 2): Ts1=mid(fn, 18, 2) ' вычленяем из имени время (часы, минуты, секунды)
  dat1=Dd1 & "." & Dm1 & "." & Dy1 & " " & Th1 & ":" & Tm1 & ":" & Ts1 ' преобразование в дату/время

  dat2=dateadd("h", 1, dat1) ' Здесь прибавляем 1 час ко времени
  Dy2=Year(dat2): Dm2=right("0" & Month(dat2), 2): Dd2=right("0" & Day(dat2), 2) ' разбиваем на год, месяц, день
  Th2=right("0" & Hour(dat2), 2): Tm2=right("0" & Minute(dat2), 2): Ts2=right("0" & Second(dat2), 2) ' разбиваем на часы, минуты, секунды
  
  newfnext=Dy2 & "-" & Dm2 & "-" & Dd2 & " " & Th2 & "-" & Tm2 & "-" & Ts2 & ext ' формирование нового имени файла
  FSO.GetFile(filename).Name = newfnext ' переименование файла
next
Работает только для файлов и именно для представленной вами форме записи в примере.

Добавлено: Пт май 19, 2023 14:00
sa
Monarch-LFV
Проверил на скорую руку. Работает - даже цифру тысячелетия меняет при необходимости.
Спасибо! Возможно, пригодится когда-нибудь для похожей задачи.

Добавлено: Сб май 20, 2023 21:28
ZorKon71
Monarch-LFV писал(а):Написал скрипт VBS:
Спасибо.
Но это получается TC не причём?

Добавлено спустя 7 минут:

Не пойму как использовать...
Сохранил в change-time.vbs
Запускаю - не помогает...

Видимо я не прав.
Как настроить в ТС?

Добавлено: Сб май 20, 2023 23:52
Monarch-LFV
ZorKon71
Перетащите мышкой файл скрипта на панель инструментов. Создастся новая кнопка. В свойстве этой кнопки в строке параметров пропишите “%WL” (без кавычек).
Далее выделяете файлы в файловой панели и нажимаете эту кнопку. Для безопасности рекомендую сделать копию этих файлов для начала. И еще раз: Работает только для файлов и именно для представленной вами формы записи в примере.

Добавлено: Вс май 21, 2023 11:23
ZorKon71
СПАСИБО!

Всё получилось!!!