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.