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.

Předchozí Článek Následující Článek

Nejlepší Tipy