Você pode executar este comando:
ls | %{ ren $_ ($_.name -replace ' - ','-') }
usando o Powershell. Isso substitui {space}-{space}
por -
.
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.
Você pode usar um programa gerenciador de arquivos como " Total Commander " que possui uma função de renomeação em massa muito poderosa incorporada.