Renomeando arquivos de acordo com a pasta em que estão

3

Tenho centenas de pastas com nomes após filmes. Em cada pasta há um arquivo .mkv (ou .avi , .mp4 ), nomeado diferentemente. Em cada pasta há um folder.jpg .

Gostaria de renomear cada arquivo de vídeo para que ele carregasse o nome de sua pasta pai. folder.jpg deve permanecer inalterado.

Por exemplo, a estrutura de pastas é assim:

 - Movies/Stirb Langsam 1/stlg1.mkv
 - Movies/Stirb Langsam 2/stlg2.mkv
 - Movies/Star Wars 1/hhgdtebds.mkv
 - Movies/Star Wars 2/stwa2.mkv

E deve ser:

 - Movies/Stirb Langsam 1/Stirb Langsam 1.mkv
 - Movies/Stirb Langsam 2/Stirb Langsam 2.mkv
 - Movies/Star Wars 1/Star Wars 1.mkv
 - Movies/Star Wars 2/Star Wars 2.mkv

No momento, uso o Windows 7 para isso. Seria bom se um dos gurus de script pudesse me ajudar.

    
por Andreas 05.10.2012 / 08:40

1 resposta

1

Salve isso como um arquivo em lotes na raiz da sua árvore:

@echo off
for /r /d %%x in (*) do (
 pushd "%%x"
 echo %%x
 for /F "delims=" %%i in ("%%x") do (
  ren *.mkv "%%~ni.mkv" 2> NUL
  ren *.avi "%%~ni.avi" 2> NUL
  ren *.mp4 "%%~ni.mp4" 2> NUL
 )
 popd
)

Isenção de responsabilidade: não me responsabilizo por danos causados.

Embora eu tenha testado na lista que você deu, eu recomendo que você faça backup dos arquivos antes de executar o arquivo em lote.

    
por 05.10.2012 / 13:49