DI

Legendador - ajeita o nome da legende para o mesmo do filme

Por DiogoTemporario, 11 de jan. de 2013 em Outras Linguagens

6
1.6k
DiogoTemporarioD
11 de janeiro de 2013 às 15:19

Seguidamente baixo um pack de legendas que vem com o nome do release mas, ao contrário dos episódios da temporada, sem o nome do episódio. É um saco mudar de um em um então esse programa faz pra vc.

 

Exemplo:

 

Antes:

Fringe LOL S01E01 Pilot.avi

Fringe LOL S01E02 Second.avi

Fringe LOL S01E23 Last.avi

Fringe LOL S01E01.srt

Fringe LOL S01E02.srt

Fringe LOL S01E23.srt

 

Depois:

Fringe LOL S01E01 Pilot.avi

Fringe LOL S01E02 Second.avi

Fringe LOL S01E23 Last.avi

Fringe LOL S01E01 Pilot.srt

Fringe LOL S01E02 Second.srt

Fringe LOL S01E23 Last.srt

 

 

 

PARA WINDOWS 7

Só salvar como .bat na pasta onde estão os arquivos

Abrir o prompt de comando na pasta onde vc salvou e rodar

legendador.bat <temporada> <formato>

Exemplo: legendador.bat 01 avi

Renomeia todos epis da temporada 01 no formato avi

 

O release deve estar no formato S0XE0Y

 

@echo off
setlocal enabledelayedexpansion
dir /b *.%~2 >%~2s.temp
dir /b *.srt >srts.temp
::De 01 a 09
for /l %%A in (1,1,9) do (
for /f "tokens=*" %%Z in ('type srts.temp ^| find /i "%~1e0%%A"') do (
set epi0%%A=%%Z
title Trabalhando... Buscando episodio %%A
)
)
::De 10 a 30
for /l %%A in (10,1,30) do (
for /f "tokens=*" %%Z in ('type srts.temp ^| find /i "%~1e%%A"') do (
set epi%%A=%%Z
echo Trabalhando... Buscando episodio %%A
)
)
::De 01 a 09
for /l %%A in (1,1,9) do (
for /f "tokens=*" %%Z in ('type %~2s.temp ^| find /i "%~1e0%%A"') do (
ren "!epi0%%A!" "%%~nZ.srt"
echo Trabalhando... Renomeando episodio %%A
)
)
::De 10 a 30
for /l %%A in (10,1,30) do (
for /f "tokens=*" %%Z in ('type %~2s.temp ^| find /i "%~1e%%A"') do (
ren "!epi%%A!" "%%~nZ.srt"
echo Trabalhando... Renomeando episodio %%A
)
)
del /q %~2s.temp
del /q srts.temp
echo Pronto.

Editado Janeiro 11 por DiogoTemporario

2 semanas depois...
OneshotO
18 de janeiro de 2013 às 18:37

Pô, velho, aqui não funcionou.

 

'find' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

 

Fiz algo errado?

 

Vou fazer um em Lua, posso?

DiogoTemporarioD
18 de janeiro de 2013 às 20:35

Faça o que quiser com o código, é de uso livre.

 

Find é um comando interno padrão, esse erro não faz muito sentido. Talvez seja por causa do ^|, no windows XP é só | eu acho. Se tu não estiver usando o 7 tenta substituir por.

HaxyH
18 de janeiro de 2013 às 22:22

Diogo

pq tu perde tempo com batch?

 

aprende uma linguagem que seja útil

OneshotO
18 de janeiro de 2013 às 23:57

Diogo

pq tu perde tempo com batch?

 

aprende uma linguagem que seja útil

 

Ele vai te dar a mesma resposta que deu pra mim.

 

"Ele faz Química, não CDC"

 

kk

 

Eu uso Windows 7. Estranho. o_õ

DiogoTemporarioD
18 de janeiro de 2013 às 23:59

mas eu fiz em 5min