Страница 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.
Ужас какой! Это сколько ж надо выпить, чтобы во всем этом разобраться
Ну, я надеюсь, что приведенный выше скрипт уже вполне устраивает.
Добавлено: Чт авг 24, 2006 10:34
aldares
Устраивает по самые гланды.
Добавлено: Ср июл 18, 2012 13:23
HEXFIX
А можно изменить скрипт таким образом, чтобы изменялось также и расширение файлов? Например .rpt на .log.
Добавлено: Пт июл 20, 2012 16:55
Batya
Если изменить строку
Код: Выделить всё
oFile.Name = NewName & "." & FSO.GetExtensionName(FilePath)
на
то все файлы будут иметь расширение log.
[mod="Avada"]С учётом реального содержания тема перенесена из "Общих вопросов" в "Автоматизацию".[/mod]