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

Чем переименовать файлы ПО СПИСКУ? [renamer]

Добавлено: Ср авг 23, 2006 09:30
aldares
Допустим, имеются файлы:
Guyver_the_Bioboosted_Armor_-_01_[RAW]_[E5F6A706].avi
Guyver_the_Bioboosted_Armor_-_02_[RAW]_[A6937759].avi
Guyver_the_Bioboosted_Armor_-_03_[RAW]_[69E9EE0B].avi
Guyver_the_Bioboosted_Armor_-_04_[RAW]_[999BCB32].avi
Guyver_the_Bioboosted_Armor_-_05_[RAW]_[24CFD6E3].avi
....
И субтитры:
Guyver, the Bioboosted Armor - 01 - The Magnificent Bio Boosted Armor.srt
Guyver, the Bioboosted Armor - 02 - The Secret Organization Chronos.srt
Guyver, the Bioboosted Armor - 03 - Inspector Lisker.srt
Guyver, the Bioboosted Armor - 04 - Evening`s Messenger.srt
Guyver, the Bioboosted Armor - 05 - The Third Shadow.srt

Нужно переименовать вторую пачку файлов так, чтобы каждому АВИшнику соответствовал СРТшник. Просто со счетчиком не получится - в АВИшках контрольные суммы в именах - они разные все.
Копирую имена cm_CopyNamesToClip - и сохраняю в текстовый файл. Далее нужна софтина, чтобы могла взять список из текстового файла. Или придется батник/скрипт сочинять... Или как вариант скрипт для TCScript.Helper - тогда можно будет еще проще сделать посылать тоталу нужные команды - cm_CopyNamesToClip, cm_RenameOnly...

Добавлено: Ср авг 23, 2006 09:53
CaptainFlint
Такое можно будет сделать в семёрке. Пока что удобного способа нет - разве что батник написать; поиском-заменой его легко сделать, лишь бы редактор был удобный, чтобы поддерживал блочную вставку текста и регулярные выражения.

Добавлено: Ср авг 23, 2006 11:10
StrangeRRor
Может все-таки можно использовать для этого Multi Rename Tool, если прикрутить к нему Script Content Plugin. Правда, кто возмется написать скрипт, который или получает CRC, или берет необжодимую часть из имени файла?

Добавлено: Ср авг 23, 2006 11:25
Batya
StrangeRRor писал(а):Может все-таки можно использовать для этого Multi Rename Tool, если прикрутить к нему Script Content Plugin. Правда, кто возмется написать скрипт, который bли получает CRC, или берет необжодимую часть из имени файла?
Ну я могу взяться. Только объясните мне, как с CRC работать или по какому принципу выделять часть имени?

Или же можно тупо сделать скрипт, в который передать список выделенных файлов и список новых имен файлов и легко обработать.

Какой вариант устраивает автора темы?

Добавлено: Ср авг 23, 2006 13:04
Batya
Если в лоб, то можно с помощью скрипта:

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

'==============================================================================
' Переименование выделенных файлов по файлу, содержащему новые имена
'
' В качестве параметров указать:
' %L {полный путь к файлу, содержащему новые имена}
'==============================================================================
Option Explicit 
If WScript.Arguments.Count < 2 Then 
  MsgBox "Указаны не все параметры", _
         vbOKOnly + vbExclamation, _
         "Переименование файлов"
  WScript.Quit
End If
Dim FSO, OTF1, OTF2, FilePath, NewName, oFile
Set FSO = CreateObject("Scripting.FileSystemObject")
Set OTF1 = FSO.OpenTextFile(WScript.Arguments(0), 1)
Set OTF2 = FSO.OpenTextFile(WScript.Arguments(1), 1)

Do While (Not OTF1.AtEndOfStream) and (Not OTF2.AtEndOfStream)
  FilePath  = OTF1.ReadLine
  NewName   = FSO.GetBaseName(OTF2.ReadLine)
  If FSO.FileExists(FilePath) Then
    Set oFile = FSO.GetFile(FilePath)
    oFile.Name = NewName & "." & FSO.GetExtensionName(FilePath)
  End If
Loop

OTF1.Close
OTF2.Close
Set oFile = Nothing
Set OTF1  = Nothing
Set OTF2  = Nothing
Set FSO   = Nothing
WScript.Quit
Сохраняем, например, в %COMMANDER_PATH%\Utils\WHS\RenameFromFileList.vbs

1. Выделить srt-файлы и нажать кнопку:

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

TOTALCMD#BAR#DATA
cmd /c copy
%F "%Pfilelist.txt"
%COMMANDER_PATH%\Icons\X-Qute.icl,30
Копирование имен файлов в файл-список

1
-1
В текщем каталоге будет создан файл filelist.txt со списком имен выделенных файлов.
2. Выделить avi-файлы и нажать кнопку:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\RenameFromFileList.vbs
%L filelist.txt
%COMMANDER_PATH%\Icons\X-Qute.icl,34
Переименование файлов по списку


-1

Добавлено: Чт авг 24, 2006 05:41
aldares
>>передать список выделенных файлов и список новых имен файлов и легко обработать.
Было бы замечательно. Потому, что не всегда нужны именно CRC - просто файлы с длинными именами. Т.к. это нужно в основном для переименовывания видео/субтитров аниме сериалов, то файлов редко бывает больше 30, очень редко больше 50, если это нужно.
А если с црц - то просто нужна программа, которая считает црц и работает с командной строки типа tinysfv или smallsfv, или gethash http://anime.nsu.ru/forum/viewtopic.php?t=1291. И контрольная сумма дописывается в конец имени, обычно, как в примере [группа]_название_номер-серии_[инфо-о кодеках][CRC].avi.

Добавлено: Чт авг 24, 2006 05:43
aldares
Блин, вчера пост не отправил. Щас скрипт потестим.
Потестил
Работает отлично и на локальных дисках и в сети \\server\share\ . Спасибо!
Японские имена не понимает, ну и фиг, это редко требуется, зато без юникода в win98 должно работать, вечером проверю.

Добавлено: Чт авг 24, 2006 10:24
Batya
aldares писал(а):А если с црц - то просто нужна программа, которая считает црц и работает с командной строки типа tinysfv или smallsfv, или gethash http://anime.nsu.ru/forum/viewtopic.php?t=1291. И контрольная сумма дописывается в конец имени, обычно, как в примере [группа]_название_номер-серии_[инфо-о кодеках][CRC].avi.
Ужас какой! Это сколько ж надо выпить, чтобы во всем этом разобраться :lol:
Ну, я надеюсь, что приведенный выше скрипт уже вполне устраивает.

Добавлено: Чт авг 24, 2006 10:34
aldares
Устраивает по самые гланды.

Добавлено: Ср июл 18, 2012 13:23
HEXFIX
А можно изменить скрипт таким образом, чтобы изменялось также и расширение файлов? Например .rpt на .log.

Добавлено: Пт июл 20, 2012 16:55
Batya
Если изменить строку

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

    oFile.Name = NewName & "." & FSO.GetExtensionName(FilePath)
на

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

    oFile.Name = NewName & ".log"
то все файлы будут иметь расширение log.

[mod="Avada"]С учётом реального содержания тема перенесена из "Общих вопросов" в "Автоматизацию".[/mod]