Buenas,
El tema es que tengo 13 mil archivos que renombrar, y debo quitar los primeros 4 caracteres y sustituir puntos por guiones Ej:
Lo que tengo:
Iii. Aaaaaaa. 1368010.013-bbb-x-001e1ca.jpg
Lo que se quiere:
Aaaaaaa-1368010-013-bbb-x-001e1ca.jpg
Creo que lo he conseguido llamando 3 .bat diferentes
bat1, quitar primera 4 posiciones:
@echo off
set ext=jpg
for /f "tokens=*" %%f in ('dir /b /a *.%Ext%') do call :lab %%f
goto :EOF
:lab
set original=%*
set newname=%original:~4%
ren "%original%" "%newname%"
goto :eof
bat2, quitar punto:
@echo off
for /R "." %%a in (*.jpg) do (SET ruta=%%a&SET original=%%~nxa&CALL :renombrar)
pause
:renombrar
set original=%original:.=-%
ren "%ruta%" "%original%"
ren *. *.jpg (aqui le vuelvo a dar el punto (.) de la extension .jpg
goto:eof
bat3, quitar las ultimas posiciones, (ya que se me crean del bat2)
@echo off
set ext=jpg
rem ext es la extension de los archivos sin anteponer punto.
set sacar=4
rem sacar es la cantidad de letras al final del nombre que quieres sacar.
for /f "tokens=*" %%f in ('dir /b /a *.%ext%') do call :lab %%f
exit
:lab
set original=
set original=%*
set newname=
call set newname=%%original:.%ext%=%%
call set newname=%%newname:~0,-%sacar%%%.%ext%
if "%newname%"==".%ext%" (goto :eof)
ren "%original%" "%newname%"
goto :eof
bat llamada, (con esto llamo la ejecución de los bat 1,2,3)
@echo off
call 1_quitar_4_primeras_posiciones.bat
call 2_quitar_punto.bat
call 3_quitar_4_ultimas_posiciones.bat
No es funcional, pero de momento logra hacer el requerimiento,
De antemano muchas gracias!!!