Preciso de um script.bat para renomear todos os arquivos de uma pasta sempre respeitando uma ordem numérica. Eu tenho esse código, mas não gosto do resultado. Como obter uma classificação numérica em vez de uma classificação lexicográfica?
@echo off
setlocal enabledelayedexpansion
set "pasta=E:\Google Drive\_Projetos em andamento\Ano 2023\Album\Testando"
set "contador=1"
cd /d "%pasta%"
REM Ensure files are sorted numerically and rename them
for /f "tokens=*" %%F in ('dir /b /on *.jpg') do (
set "novo_nome=00!contador!.jpg"
ren "%%F" "!novo_nome!"
set /a "contador+=1"
)
endlocal
nomes originais ( https://isstatic.askoverflow.dev/Ghhsy.png )
Nomes renomeados fora de ordem numérica ( https://isstatic.askoverflow.dev/BRa1M.png ) Observe que os arquivos estão fora de ordem: 1,10,11,12,13,114,15,2,3,4, 5,6,7,8,9
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 (forma correta)
Pasta com arquivos para testar https://wetransfer.com/downloads/4e09d2c0851ed566f37c4cc63916c58720230903163115/9a7d0c
para cada arquivo obtenha o número entre parênteses, adicione 1000 e pegue os três últimos dígitos disso:
Remova
ECHO
se a saída for satisfatória para realmente ativar oren
comando.