remoção de sufixos de vários arquivos no Windows - não duplicado

remoção de sufixos de vários arquivos no Windows - não duplicado

Isso pode parecer uma pergunta duplicada, mas não é. Meu problema é um pouco diferente. Na verdade, eu tinha uma pasta com muitos arquivos mp4 e queria adicionar o sufixo GOOD a cada um dos nomes dos arquivos. Vendo as respostas para a pergunta anterior, fiz algo e acabei sufixando .mp4good. Assim, um arquivo originalmente a.mp4 tornou-se a.mp4good.mp4 em vez de aGOOD.mp4 (o que eu realmente queria). Felizmente, todos esses arquivos estão em execução, mas os nomes não são os que eu queria. Solicito ajuda sobre como conseguir o que quero a partir deste ponto. Usei o comando renomear no DOS da pasta que contém esses arquivos.

Responder1

Como você descobriu, a sintaxe usada para anexar um sufixo ao nome base estava incorreta. Uma explicação do porquê pode ser encontrada em Como o comando RENAME do Windows interpreta curingas?. Esse link também possui a sintaxe correta para anexar ao nome base:

ren *.mp4 ??????????????????GOOD.*

Deve haver o suficiente ?para corresponder ao comprimento do nome base mais longo.

Observe que se você tiver alguns nomes iniciais no formato a.b.mp4, o resultado acima resultará em aGOOD.b.mp4. Se quiser a.bGOOD.mp4, você precisará de mais do que um simples comando REN. Você poderia usar

for %F in (*.mp4) do @ren "%F" "%~nFGOOD.mp4"

Se você colocar o comando em um script em lote, deverá dobrar as porcentagens

@echo off
for %%F in (*.mp4) do ren "%%F" "%%~nFGOOD.mp4"

Atualmente você tem nomes no formato a.mp4GOOD.mp4, e deseja aGOOD.mp4.

A solução é:

ren *.mp4GOOD.mp4 ??????????????????GOOD.mp4

Se alguns nomes tiverem mais de dois pontos, você precisará de mais do que um simples comando REN.

for %A in (*.mp4GOOD.mp4) do @for %B in ("%~nA") do @ren "%B" "%~nBGOOD.mp4

Lembre-se de dobrar as porcentagens se colocar o comando em um script em lote.

informação relacionada