BAT comando para insertar un char. en un nombre de archivo

Problema

Tengo un problema, uno cuya solución tropecé hace un par de años pero, por desgracia, mi almacenamiento se estrelló recientemente y perdí el archivo por lotes.

Comenzamos con este extraño nombre de archivo:

rango (todos) _so2_1hr_conc_A_2p5h10.dat

La siguiente utilidad BAT elimina hábilmente todo lo que está delante de la 'A' (primeros 23 caracteres):

 @echo desactivado para %% i in (* .dat) do (establecer fName = %% i) & call: rename goto: eof: rename :: Corta los primeros 23 caracteres de fName ('rank (todos) _so2_1hr_conc_'): ren% fName%% fName: ~ 23% goto: eof 

¡Genial! Esto hace que:

A_2p5h10.dat

Ahora necesito convertir esto a:

A_2p5h100.dat

El aviso '... h10' debe ser '... h100'. Tenga en cuenta que, mientras que en este ejemplo, la parte que precede al '.' es 'A_2p5h10', podría ser cualquier cadena de 8 caracteres (por lo que necesitaremos un comodín o algo así).

¿Puede sugerir una rutina que agregue el '0' a la mitad del nombre del archivo (antes del '.')? Hay cientos de nombres de archivos en el directorio que necesitan tener esta conversión.

Como recuerdo, el comando crítico (creo que usé REN) que solía hacer esto era extremadamente simple (contenía uno o más%, según recuerdo).

Solución

Puedes usar este script:

 @echo desactivado para %% i in (* .dat) do (establecer fName = %% i) & call: rename goto: eof: rename :: Renombra el archivo descartando los primeros 23 caracteres, y los últimos 7 y agregando H100.plt al final ren ren% fName%% fName: ~ 23, -7% H100.plt goto: eof 

Nota

Gracias a Tommy por este consejo en el foro.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos