Código (dos) [Seleccionar]
@echo off
Setlocal enabledelayedexpansion
For %%# in (*.txt) Do (
Set "Registry=%%~n#"
Set "Date=20!Registry:~0,6!"
Set "Time=!Registry:~6,6!"
Set "Ficha=!Registry:~-4!"
Set "Fixed=00 0 00 0 01"
Set "NewRegistry=!Date! !Time! !Ficha! !Fixed!"
Echo Old Registry: !Registry!
Echo New Registry: !NewRegistry!
REM Rename "%%#" "!NewRegistry!%%~x#"
)
Pause&Exit
Output:
Código [Seleccionar]
Old Registry: 130425075500000001010
New Registry: 20130425 075500 1010 00 0 00 0 01
Confirma que es correcto, porque a mi no me cuadran las cosas, como ves obtengo esto:
Código [Seleccionar]
20130425 075500 1010 00 0 00 0 01
Pero según tus indicaciones la ficha debería ser "0101"
Deberías especificar cual es el registro fijo de este string: 130425075500000001010
Yo he asumido que la ficha eran los últimos 4 dígitos, pero quizás haya que eliminar el último dígito y coger los ultimos 4, entonces modifica esta línea:
Código [Seleccionar]
Set "Ficha=!Registry:~-4!"
Por esta otra:
Código [Seleccionar]
Set "Ficha=!Registry:~-5!" & Set "Ficha=!Ficha:~0,4!"
Así obtienes exáctamente el nuevo registro, pero como no sé la estructura del antiguo registro... no sé si es lo correcto.
Saludos!