Renomeando múltiplos arquivos com apenas uma parte do nome do arquivo original

0

Eu quero renomear 40 arquivos png em uma pasta, eles têm nomes muito longos. Eles são nomeados em série como este, "blah ... blah ... blah160.png", "blah ... blah ... blah200.png" ou seja, após 40 caracteres alfanuméricos vem o número de série em três dígitos (160), Eu quero apenas os últimos três dígitos para permanecer no nome do arquivo, então, "blah ... blah ... blah160.png" deve se tornar "160.png", existe um simples comando de uma linha DOS (cmd.exe) no win 7?

    
por Vikram 06.06.2013 / 08:24

1 resposta

0

O seguinte arquivo cmd deve fazer o trabalho:

@echo off & setlocal

for %%F in (*.png) do call :doIt %%F
goto xit

:doIt
set name=%~n1
set num=%name:~-3%
set ext=%~x1
set lentest=%name:~40,3%

if not [%lentest%]==[] (
  copy "%1" %num%%ext%
::  del "%1"  
)
goto :EOF

:xit
endlocal

Remova o comentário da linha "del" para excluir a versão com o nome longo.

É possível espremer isso em menos linhas, mas isso tornaria menos compreensível.

    
por 06.06.2013 / 09:35