Você deve começar com:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "delims=*" %%a IN ('dir /b 00*.jpg') do (
set file=%%a
set newfile=!file:~2!
echo move !file! !newfile!
)
endlocal
Isto, como está, simplesmente ecoará o comando move . Remova o echo assim que terminar de testar. E lembre-se de que isso pode não funcionar como esperado se os nomes dos arquivos contiverem espaços neles.
Percorrendo-o pouco a pouco:
- O
setlocalpermite determinadas extensões decmd.exe, sendo que aqui está a capacidade de fazer uma expansão atrasada das variáveis de ambiente dentro deforloops. - O loop
forexecuta o cmddir /b 00*.jpg, fazendo uma iteração por arquivo (configurando%%apara o nome do arquivo). - O primeiro
setsimplesmente salva o nome do arquivo em uma variável. A segunda é uma operação de substring começando no terceiro caractere. - O
moverenomeia o arquivo.
Você pode examinar os vários comandos inserindo os comandos help na linha de comando:
setlocal /?
set /?
for /?
set /?