Como renomear imagens múltiplas usando o arquivo .bat com algumas condições?

0

No meu exemplo eu tenho dois arquivos, os nomes são
test_20554783jsd.jpg
test_1_2021848ing.jpg

Eu preciso renomear esses arquivos depois de sublinhado ("_") e eu quero que os nomes gostem
test.jpg
test_1.jpg

Já tenho código

    @echo off
    for /F "delims=" %%I in ('dir /A-D /B *_* 2^>nul') do (
    for /F "tokens=1 delims=_ " %%J in ("%%~nI") do ren "%%I" "%%J%%~xI"
    ) 

mas o problema é remover o sublinhado ("_") do começo. Eu não preciso disso porque alguns dos nomes de arquivo contém undersore. então eu preciso remover todas as letras após o sublinhado, incluindo a forma de sublinhado na última.

Alguém pode otimizar meu código
obrigado,

    
por Shriram 19.06.2018 / 14:19

1 resposta

0

Embora não responda diretamente à sua pergunta. Mas, você pode usar o PowerShell para isso, pois ele também suporta o uso da expressão regular.

Eu usei o seguinte para conseguir isso:

Get-ChildItem . -file -Filter "*_*.jpg" | Rename-Item -newname { $_.name -replace "_[^_]+$", ".jpg"}

    
por 19.06.2018 / 14:58