Comando BAT per inserire un carattere. in un nome di file

Problema

Ho un problema, uno la cui soluzione è incappata in un paio di anni fa ma, ahimè, il mio archivio si è bloccato di recente e ho perso il file batch!

Iniziamo con questo nome di file imbarazzante:

rango (tutti) _so2_1hr_conc_A_2p5h10.dat

La seguente utility BAT taglia abilmente tutto davanti alla "A" (primi 23 caratteri):

 @echo off per %% i in (* .dat) do (imposta fName = %% i) e chiama: rinomina goto: eof: rinomina :: ritaglia i primi 23 caratteri di fName ('rank (all) _so2_1hr_conc_'): % fName%% fNome: ~ 23% goto: eof 

Grande! Questo rende:

A_2p5h10.dat

Ora ho bisogno di convertirlo in:

A_2p5h100.dat

Avviso '... h10' deve essere '... h100'. Nota che, mentre in questo esempio, la parte che precede '.' è 'A_2p5h10', potrebbe essere una qualsiasi stringa di 8 caratteri (quindi avremo bisogno di un carattere jolly o qualcosa del genere).

Puoi suggerire una routine che aggiunga lo '0' nel mezzo del nome del file (precedente a '.')? Ci sono centinaia di nomi di file nella directory che devono avere questa conversione.

Come ricordo, il comando critico (credo usato REN) che era solito fare questo era estremamente semplice (conteneva uno dei più%, come ricordo).

Soluzione

Puoi usare questo script:

 @echo off per %% i in (* .dat) do (imposta fName = %% i) e chiama: rinomina goto: eof: rinomina :: Rinomina il file scartando i primi 23 caratteri e gli ultimi 7 e aggiungendo H100.plt alla fine ren% fName%% fName: ~ 23, -7% H100.plt goto: eof 

Nota

Grazie a Tommy per questo suggerimento sul forum.

Articolo Precedente Articolo Successivo

I Migliori Consigli