como percorrer subpastas e renomear para pai - pasta - número do arquivo

0

Aqui estão minhas pastas:

Dexter\Season 1\season 1 ep 1  
Dexter\Season 1\season 1 ep 1  
Dexter\Season 2\season 1 ep 1  
Dexter\Season 2\season 1 ep 1  
Dexter\Season 3\season 1 ep 1  
Dexter\Season 3\season 1 ep 1  

Atualmente, estou em Dexter\

O que eu quero fazer é percorrer todas as subpastas no Dexter e renomear todos os arquivos de acordo:

Dexter\Season 1\season 1 ep 1 -> Dexter\Season 1x1

Como eu faria isso?

    
por user1087185 10.07.2013 / 12:41

1 resposta

2

Desde que eu estou perdendo meu verão dentro de qualquer maneira eu também poderia fazer algo útil, e escrever o roteiro para você. Supondo que você esteja usando o Windows, o seguinte script do PowerShell se ajustaria ao seu cenário (basta salvar como um arquivo .ps1 e modificar o caminho na parte superior).

$TVShowFolderPath = "X:\Series\Dexter";

$TVShowSeasons=$(get-childitem "$TVShowFolderPath");

foreach( $s in $TVShowSeasons)
{
    if( ($s.PSisContainer) -and ($s -imatch "^(Season )(\d{2}|\d{1})$") )
    {
        $season = $matches[2];
        write-host "Season $season";

        $episodes=$(get-childitem $s.FullName);

        foreach( $ep in $episodes)
        {
            if( $ep -imatch "^(season) (\d{2}|\d{1}) (ep) (\d{2}|\d{1})(.*)$")
            {
                $newName = "$($season)x$($matches[4])$($matches[5])";
                write-host "'tEpisode: '"$($ep.Name)'" --> '"$newName'"";
                Rename-Item $ep.FullName $newName;
            }
        }
    }
}

Se você quiser ver se ele solta os nomes corretos, primeiro comente a linha que começa com "Rename-Item".

    
por 10.07.2013 / 13:45