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

5

Eu tenho aproximadamente 1200 músicas em uma pasta cujos nomes de arquivo são estruturados da seguinte forma:

artist_name - song_name.mp3

Por exemplo:

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

Gostaria de usar os comandos do DOS no Windows PowerShell para fazer uma renomeação em massa desses arquivos para 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 de 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 uma 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 escrevê-lo assim 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 string de 3 caracteres de espaço hífen no espaço.

Certamente, deve haver um jeito.

    
por Ed S. 28.02.2016 / 07:36

2 respostas

2

Você pode executar este comando:

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

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

    
por 28.02.2016 / 07:43
1

Você pode usar um programa gerenciador de arquivos como " Total Commander " que possui uma função de renomeação em massa muito poderosa incorporada.

    
por 28.02.2016 / 07:46