Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

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

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
aldares



Joined: 28 Dec 2004
Posts: 56

Post (Separately) Posted: Wed Aug 23, 2006 09:30    Post subject: Чем переименовать файлы ПО СПИСКУ? [renamer] Reply with quote

Допустим, имеются файлы:
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...
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Wed Aug 23, 2006 09:53    Post subject: Reply with quote

Такое можно будет сделать в семёрке. Пока что удобного способа нет - разве что батник написать; поиском-заменой его легко сделать, лишь бы редактор был удобный, чтобы поддерживал блочную вставку текста и регулярные выражения.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
StrangeRRor



Joined: 15 Jul 2006
Posts: 214

Post (Separately) Posted: Wed Aug 23, 2006 11:10    Post subject: Reply with quote

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

Last edited by StrangeRRor on Wed Aug 23, 2006 11:28; edited 1 time in total
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Wed Aug 23, 2006 11:25    Post subject: Reply with quote

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


Ну я могу взяться. Только объясните мне, как с CRC работать или по какому принципу выделять часть имени?

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

Какой вариант устраивает автора темы?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Wed Aug 23, 2006 13:04    Post subject: Reply with quote

Если в лоб, то можно с помощью скрипта:
Code:
'==============================================================================
' Переименование выделенных файлов по файлу, содержащему новые имена
'
' В качестве параметров указать:
' %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-файлы и нажать кнопку:
Code:
TOTALCMD#BAR#DATA
cmd /c copy
%F "%Pfilelist.txt"
%COMMANDER_PATH%\Icons\X-Qute.icl,30
Копирование имен файлов в файл-список

1
-1

В текщем каталоге будет создан файл filelist.txt со списком имен выделенных файлов.
2. Выделить avi-файлы и нажать кнопку:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\RenameFromFileList.vbs
%L filelist.txt
%COMMANDER_PATH%\Icons\X-Qute.icl,34
Переименование файлов по списку


-1
Back to top
View user's profile Send private message
aldares



Joined: 28 Dec 2004
Posts: 56

Post (Separately) Posted: Thu Aug 24, 2006 05:41    Post subject: Reply with quote

>>передать список выделенных файлов и список новых имен файлов и легко обработать.
Было бы замечательно. Потому, что не всегда нужны именно CRC - просто файлы с длинными именами. Т.к. это нужно в основном для переименовывания видео/субтитров аниме сериалов, то файлов редко бывает больше 30, очень редко больше 50, если это нужно.
А если с црц - то просто нужна программа, которая считает црц и работает с командной строки типа tinysfv или smallsfv, или gethash http://anime.nsu.ru/forum/viewtopic.php?t=1291. И контрольная сумма дописывается в конец имени, обычно, как в примере [группа]_название_номер-серии_[инфо-о кодеках][CRC].avi.
Back to top
View user's profile Send private message
aldares



Joined: 28 Dec 2004
Posts: 56

Post (Separately) Posted: Thu Aug 24, 2006 05:43    Post subject: Reply with quote

Блин, вчера пост не отправил. Щас скрипт потестим.
Потестил
Работает отлично и на локальных дисках и в сети \\server\share\ . Спасибо!
Японские имена не понимает, ну и фиг, это редко требуется, зато без юникода в win98 должно работать, вечером проверю.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Thu Aug 24, 2006 10:24    Post subject: Reply with quote

aldares wrote:
А если с црц - то просто нужна программа, которая считает црц и работает с командной строки типа tinysfv или smallsfv, или gethash http://anime.nsu.ru/forum/viewtopic.php?t=1291. И контрольная сумма дописывается в конец имени, обычно, как в примере [группа]_название_номер-серии_[инфо-о кодеках][CRC].avi.

Ужас какой! Это сколько ж надо выпить, чтобы во всем этом разобраться Laughing
Ну, я надеюсь, что приведенный выше скрипт уже вполне устраивает.
Back to top
View user's profile Send private message
aldares



Joined: 28 Dec 2004
Posts: 56

Post (Separately) Posted: Thu Aug 24, 2006 10:34    Post subject: Reply with quote

Устраивает по самые гланды.
Back to top
View user's profile Send private message
HEXFIX



Joined: 25 Jun 2010
Posts: 173
Location: Калининград

Post (Separately) Posted: Wed Jul 18, 2012 13:23    Post subject: Reply with quote

А можно изменить скрипт таким образом, чтобы изменялось также и расширение файлов? Например .rpt на .log.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Fri Jul 20, 2012 16:55    Post subject: Reply with quote

Если изменить строку
Code:
    oFile.Name = NewName & "." & FSO.GetExtensionName(FilePath)
на
Code:
    oFile.Name = NewName & ".log"
то все файлы будут иметь расширение log.

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

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
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