У меня есть установка коллекции фильмов на моем nas и я пытаюсь переименовать все мои файлы субтитров под тем же именем, что и фильм, расположенный в том же каталоге. Например:Переименуйте файл так же, как самый большой файл в каталоге
D:\Movies\2 Guns (2013) (Bluray)\
-2 Guns (2013).mkv
-English.srt
Я хотел бы для файла english.srt быть переименован в:
2 Guns (2013).srt
Короче говоря, я не могу использовать любой тип медиа-менеджер для достижения этой цели. Мне бы хотелось, чтобы это был пакетный файл, но я готов использовать powershell или даже стороннюю программу, если это не медиа-менеджер. Мне нужно, чтобы имя создавалось на основе самого большого файла, расположенного в том же каталоге, а не имени папки, поскольку некоторые из них не соответствуют именам файлов. Кроме того, .srt файлы не всегда будут называться english.srt
Edit-
Так что я пришел с этим:
@echo off
setlocal enabledelayedexpansion
for /F "delims=" %%A in ('dir /b *.mp4 *.avi *.mkv') do (
set basename="%%~nA"
ren *.srt !basename!.eng.srt
)
Это прекрасно работает, но как я могу сделать это рекурсивный, поэтому я могу запускать его из родительского каталога vs один за другим?
Вы можете предоставить несколько шаблонов файлов для 'dir', например:' dir/B * .m * * .avi'. Однако ваш код не отражает пример выше ... – aschipfl
Большое вам спасибо за это! Слишком просто и без внимания. Отредактировал мой пример и вопрос о последующих действиях! – Failstyle
Не включайте решения в вопрос; скорее отправьте их в ответ! – aschipfl