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.