Se os nomes dos seus arquivos não contiverem nenhum período diferente do final (.doc.pdf), o seguinte funcionará:
for /f "delims=." %a in ('dir /b *.doc.pdf') do ren "%~a.doc.pdf" "%~a.pdf"
No Windows XP, estou tentando descobrir como renomear em lote e remover os últimos caracteres de nomes de arquivos.
Exemplo de remoção dos últimos 4 caracteres antes da extensão do arquivo: file.doc.pdf - > file.pdf
Eu poderia fazer:
ren *.pdf *.
ren *.doc *.pdf
Embora isso não funcione bem se já houver outros PDFs na pasta.
Não tenho certeza se o comando FOR é necessário aqui.
Se os nomes dos seus arquivos não contiverem nenhum período diferente do final (.doc.pdf), o seguinte funcionará:
for /f "delims=." %a in ('dir /b *.doc.pdf') do ren "%~a.doc.pdf" "%~a.pdf"
ren *.doc.pdf ????????????????????.pdf
Apenas certifique-se de que a máscara de destino tenha pelo menos o mesmo ?
do nome de arquivo base mais longo.
Para uma explicação de por que isso funciona, consulte Como o comando Windows RENAME interpreta curingas?
ren * *. -> will give you 'file.doc'
repeat above command -> will give you 'file'
ren * *.pdf -> will give 'file.pdf'
file.doc.pdf - > arquivo.doc:
for %I in (*.doc.pdf) do rename "%~nI.pdf" "%~nI"
arquivo.doc - > file.pdf
for %I in (*.doc) do rename "%~nI.doc" "%~nI.pdf"