View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 04, 2019 21:13 Post subject: |
|
|
shadow_405
Странно. А если апостроф перед последней строкой поставить? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
shadow_405
Joined: 01 Apr 2019 Posts: 18
|
(Separately) Posted: Thu Apr 04, 2019 21:32 Post subject: |
|
|
Flasher
А вот теперь действительно странно. Теперь и старая, и новая версии скрипта не меняют сортировку
Не представляю почему (разве что комп перезагрузил), но спасибо) |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 04, 2019 21:38 Post subject: |
|
|
shadow_405
Последняя строка имитирует нажатие Ctrl+r (обновление панели). Что там могло менять сортировку — для меня загадка. Но нужна строка для быстрого обновления. Если опять возникнет такое, то предлагаю в Разном задать Ctrl+Alt+Shift+R для cm_RereadSource. И ^r поменять на ^%R в исходной строке.
Впрочем, чтобы не заботиться о смене, можно отказаться от второго условия:
Code: | '========================== VBS ===========================
' Переименовать выбранные файлы по шаблону: * № <№+x>.<ext>
' Условие: путь запуска — пустой
' Параметры: %WF <[-]число счётчика>
' Примеры: %WF 2 | %WF -1
'==========================================================
Option Explicit: Dim Rgx, FSO, Col, List, Num, F, i, M
If WSH.Arguments.Count = 0 Then WSH.Quit
Set Rgx = New RegExp
Rgx.Pattern = "(.+№ )(\d+)([a-zа-я]?\.\w+)$"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Col = CreateObject("System.Collections.ArrayList")
Set List = FSO.OpenTextFile(WSH.Arguments(0),,,-1)
Num = CInt(WSH.Arguments(1))
Do: F = List.ReadLine
If Right(F, 1) <> "\" Then If Rgx.Test(F) Then _
Col.Add Rgx.Execute(F)(0).SubMatches(1) & "_" & F
Loop Until List.AtEndOfStream: List.Close
Col.Sort : If Num > 0 Then Col.Reverse
For Each F in Col
F = Split(F, "_")(1) : Set M = Rgx.Execute(F)(0)
FSO.GetFile(F).Name = M.SubMatches(0) & M.SubMatches(1) + Num & M.SubMatches(2)
Next : Set Col = Nothing : Set FSO = Nothing : Set Rgx = Nothing
CreateObject("WScript.Shell").SendKeys "^r" |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Thu Apr 04, 2019 23:19; edited 3 times in total |
|
Back to top |
|
|
shadow_405
Joined: 01 Apr 2019 Posts: 18
|
(Separately) Posted: Thu Apr 04, 2019 21:44 Post subject: |
|
|
Flasher
Отлично, попробую!
Добавлено спустя 13 минут:
А эта версия выдает ошибку, если один файл от другого отличается только наличием буквы, например:
1983, № 215
1983, № 215а |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 04, 2019 22:17 Post subject: |
|
|
shadow_405
Не подумал. Исправлено. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
shadow_405
Joined: 01 Apr 2019 Posts: 18
|
(Separately) Posted: Thu Apr 04, 2019 22:55 Post subject: |
|
|
Flasher
При применении опять менял сортировку. Если добавить апостроф перед последней строкой - не меняет. В любом случае, переименование шло без ошибок при любой сортировке.
Зато при попытке уменьшать номера - ошибка при любой сортировке. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 04, 2019 22:57 Post subject: |
|
|
shadow_405
Я выше дал рекомендацию без апострофа. Она выполнена?
Насчёт уменьшения не понял. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
shadow_405
Joined: 01 Apr 2019 Posts: 18
|
(Separately) Posted: Thu Apr 04, 2019 23:04 Post subject: |
|
|
Flasher
Я именно про последнюю версию кода. Без апострофа опять меняет сортировку, хотя это уже и не так важно, раз работает при любой.
Я пробовал менять в третьей снизу строке ваше "+ 1" на другие значения, например, на "- 1". Вдруг возникнет потребность уменьшить все номера. В предыдущей версии скрипта всё работало и на сложении, и на вычитании, а в последней вычитание не работает. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 04, 2019 23:22 Post subject: |
|
|
shadow_405 wrote: | Я именно про последнюю версию кода. | А я про рекомендацию над ней. Она касается обеих версий. И там же объяснено, зачем это (по части "важно").
shadow_405 wrote: | Я пробовал менять в третьей снизу строке ваше "+ 1" на другие значения, например, на "- 1". | Это так просто не делается. Добавил второй параметр. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
shadow_405
Joined: 01 Apr 2019 Posts: 18
|
(Separately) Posted: Fri Apr 05, 2019 00:31 Post subject: |
|
|
Flasher wrote: | А я про рекомендацию над ней. Она касается обеих версий. И там же объяснено, зачем это (по части "важно"). |
Я думал, это только для старой версии. Сделал всё по инструкции, теперь проблем с сортировкой нет.
Flasher wrote: | Это так просто не делается. Добавил второй параметр. |
Отлично, с этим параметром стало вообще идеально! Думаю, улучшать тут уже нечего, спасибо еще раз! |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Mon Jul 29, 2019 01:40 Post subject: |
|
|
Нужен скрипт, который будет переименовывать выделенный srt, sub, ass,ssa файлы под имя avi, mkv,mp4 файла, находящегося в той же папке, с добавлением .rus (без расшерения видеофайла). Если файл субтитра с данным именем уже имеется в папке, добавлять .eng. Если файл и с таким именем имеется, то ничего не делать. Ничего не делать и в случае, если в папке нет видеофайлов с такими расширениями, или есть больше одного.
Пример: 111.srt > Terminator.rus.srt (при наличии файла Terminator.mkv). 222.srt > Terminator.eng.srt (при наличии файлов Terminator.mkv и Terminator.rus.srt). |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10252 Location: Россия, Саратов
|
(Separately) Posted: Mon Jul 29, 2019 12:14 Post subject: |
|
|
Dimsok
Перенесено из темы "Script Request" в более подобающее запросу место. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jul 29, 2019 12:43 Post subject: |
|
|
Dimsok
А не лучше в выбранных папках искать сабы и делать остальное? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Tue Jul 30, 2019 01:19 Post subject: |
|
|
Для меня хуже - привык по порядку. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jul 30, 2019 07:36 Post subject: |
|
|
К какому порядку? Объясни нормально. С папками гораздо меньше возни будет.
Dimsok wrote: | Ничего не делать и в случае, если в папке нет видеофайлов с такими расширениями, или есть больше одного. | Логично с этого сразу начинать — до выборки сабов.
Code: | '========================== VBS ===========================
' Переименование базовых имён выбранных субтитров в базовые
' имена одиночных видеофайлов и годное языковое расширение
' Условие: путь запуска — пустой
' Параметры: %WL <маска расширений видео>
' Пример: %WL *.avi;*.mkv;*.mp4
'==========================================================
Option Explicit
Dim Items, List, BN, F, Ext, sExt
If WSH.Arguments.Count = 0 Then WSH.Quit
With CreateObject("Scripting.FileSystemObject")
Set Items = CreateObject("Shell.Application")._
NameSpace(.GetAbsolutePathName("")).Items
Items.Filter 8256, WSH.Arguments(1)
If Items.Count <> 1 Then WSH.Quit
Set List = .OpenTextFile(WSH.Arguments(0),,,-1)
BN = .GetBaseName(Items.Item(0).Path)
Set Items = Nothing
Do: F = List.ReadLine
If Right(F, 1) <> "\" Then
Ext = .GetExtensionName(F)
If InStr(" srt sub ass ssa ", " " & LCase(Ext) & " ") Then
sExt = ".rus." : If .FileExists(BN & sExt & Ext) Then sExt = ".eng."
If Not .FileExists(BN & sExt & Ext) Then .GetFile(F).Name = BN & sExt & Ext
End If
End If
Loop Until List.AtEndOfStream
End With
List.Close : Set List = Nothing |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Wed Jul 31, 2019 10:09; edited 1 time in total |
|
Back to top |
|
|
|