Příkaz BAT k vložení znaku. v názvu souboru
Problém
Mám problém, ten, jehož řešení jsem narazil na pár lety, ale - bohužel - můj sklad nedávno havaroval a ztratil jsem dávkový soubor!
Začneme s tímto nepříjemným názvem souboru:
rank (all) _so2_1hr_conc_A_2p5h10.dat
Následující utilita BAT chytře odřízne vše před „A“ (prvních 23 znaků):
@echo vypnuto pro %% i in (* .dat) do (nastavit fName = %% i) & call: přejmenovat goto: eof: rename :: Ořízne první 23 znaků fName ('rank (all) _so2_1hr_conc_'): ren% fName%% fName: ~ 23% goto: eof
Skvělý! Toto vykreslí:
A_2p5h10.dat
Teď to musím převést na:
A_2p5h100.dat
Oznámení „... h10“ musí být „... h100“. Všimněte si, že zatímco v tomto příkladu, část předcházející '.' je 'A_2p5h10', může to být libovolný 8-znakový řetězec (takže budeme potřebovat zástupný znak nebo tak něco).
Můžete prosím navrhnout rutinu, která přidá '0' uprostřed názvu souboru (před '.')? V adresáři, který tuto konverzi potřebuje, jsou stovky názvů souborů.
Jak si vzpomínám, kritický příkaz (věřím, že používám REN), který to dělal, byl velmi jednoduchý (obsahoval jeden z více%, jak si vzpomínám).
Řešení
Tento skript můžete použít:
@echo vypnuto pro %% i in (* .dat) do (nastavit fName = %% i) & call: přejmenovat goto: eof: rename :: Přejmenovat soubor vyřazením prvních 23 znaků a posledních 7 a přidáním H100.plt na konci ren% fName%% fName: ~ 23, -7% H100.plt goto: eof
Poznámka
Díky Tommymu za tento tip na fóru.