Переименование файлов по имени их папок и заданным числам
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2  :| |:
Total Commander -> Автоматизация Total Commander

#16:  Author: moonbaggi PostPosted: Sun Jun 10, 2018 09:59
    —
Flasher Спасибо!
Как я понимаю данной код нужно сохранить в блокнот в формате vbs.
И создать кнопку в меню инструментов?

#17:  Author: FlasherLocation: Москва PostPosted: Sun Jun 10, 2018 10:18
    —
moonbaggi
Да. Только это панель, а не меню. См. памятку сверху подфорума.

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

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

#18:  Author: ZorKon71Location: Обираловка, МО PostPosted: Wed May 17, 2023 23:29
    —
А можно автоматизировать переименование, если в имени файлов дата?
Например есть:
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

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

#19:  Author: Monarch-LFV PostPosted: Thu May 18, 2023 11:11
    —
ZorKon71
Да, здесь порстым изменением цифр не обойдешься, здесь нужно преобразовать имя в дату, прибавить час и заново разделить на части и записать в имя. Написал скрипт VBS:
Code:
' Изменяет время в имени файла (прибавляет час)
' например:    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

Работает только для файлов и именно для представленной вами форме записи в примере.

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

#21:  Author: ZorKon71Location: Обираловка, МО PostPosted: Sat May 20, 2023 22:21
    —
Monarch-LFV wrote:
Написал скрипт VBS:

Спасибо.
Но это получается TC не причём?

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

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

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

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

#23:  Author: ZorKon71Location: Обираловка, МО PostPosted: Sun May 21, 2023 12:23
    —
СПАСИБО!

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



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2  :| |:
Page 2 of 2

Powered by phpBB © 2001, 2005 phpBB Group