Como especificar um espaço como parte de uma sequência curinga para renomear em massa arquivos

4

Eu tenho aproximadamente 1200 músicas em uma pasta cujos nomes de arquivos estão estruturados da seguinte maneira:

artist_name - song_name.mp3

Por exemplo:

Billy Joel - Piano Man.mp3
The Beatles - Nowhere Man.mp3

Eu gostaria de usar os comandos do DOS no Windows PowerShell para renomear esses arquivos em massa e remover o espaço em ambos os lados do hífen. Eu não quero remover todos os espaços, no entanto. O problema básico é poder incluir espaços nas especificações do nome do arquivo para alterar "-" para "-" em todos os arquivos em um diretório. Aqui estão alguns exemplos do que eu gostaria de mudar:

Nomes de arquivos existentes

Billy Joel - Piano Man.mp3
The Beatles - Nowhere Man.mp3

Nomes de arquivos desejados

Billy Joel-Piano Man.mp3
The Beatles-Nowhere Man.mp3

Alguém pode pensar em um comando do DOS que possa ser executado no prompt de comando para fazer essa alteração em todos os arquivos no diretório?

Descobri que para listar todos esses arquivos com um comando DIR, posso usar:

DIR asterisk+doublequote+space+hyphen+space+doublequote+asterisk+dot+asterisk

Eu tive que escrever dessa maneira, porque a sintaxe real parece ser tratada como instruções de formatação aqui neste fórum.

Isso lista todos os arquivos que possuem a cadeia de três caracteres do espaço-hífen-espaço.

Certamente, deve haver um caminho.

Ed S.
fonte

Respostas:

2

Você pode executar este comando:

ls | %{ ren $_ ($_.name -replace ' - ','-') }

usando o PowerShell. Isso substitui {space}-{space}por -.

Jonno
fonte
Foram necessários apenas 8 minutos para que meu problema fosse resolvido!
Ed S.
Muito obrigado, Jonno, isso funcionou perfeitamente. Eu aprecio sua bondade. Tenha um ótimo fim de semana!
Ed S.
1

Você pode usar um programa do Gerenciador de Arquivos como o " Total Commander ", que possui uma função de renomeação em massa muito poderosa.

David G
fonte