BAT-opdracht om een ​​char in te voegen. in een bestandsnaam

Kwestie

Ik heb een probleem, een waarvan ik de oplossing een paar jaar geleden tegenkwam, maar - helaas - mijn opslag crashte onlangs en ik verloor het batchbestand!

We beginnen met deze ongemakkelijke bestandsnaam:

rank (alle) _so2_1hr_conc_A_2p5h10.dat

Het volgende BAT-hulpprogramma ontmantelt slim alles voor de 'A' (eerste 23 tekens):

 @echo off voor %% i in (* .dat) do (stel fName = %% i) & call: hernoem goto: eof: hernoem: Bewerkt de eerste 23 tekens van fName ('rank (all) _so2_1hr_conc_'): ren% fName%% fName: ~ 23% goto: eof 

Super goed! Dit maakt:

A_2p5h10.dat

Nu moet ik dit converteren naar:

A_2p5h100.dat

Opmerking '... h10' moet '... h100' zijn. Merk op dat, terwijl in dit voorbeeld, het gedeelte dat voorafgaat aan de '.' is 'A_2p5h10', dit kan elke tekenreeks van 8 tekens zijn (dus we hebben een wildcard of iets nodig).

Kun je alsjeblieft een routine voorstellen die de '0' in het midden van de bestandsnaam zal toevoegen (voorafgaand aan de '.')? Er zijn honderden bestandsnamen in de map die deze conversie nodig hebben.

Zoals ik me herinner, was het kritieke commando (ik geloof dat het REN gebruikte) dat dit vroeger deed extreem eenvoudig (bevatte een of meer%, zoals ik me herinner).

Oplossing

U kunt dit script gebruiken:

 @echo off voor %% i in (* .dat) do (stel fName = %% i) & call: hernoem goto: eof: hernoem: :: Hernoem het bestand door eerste 23 tekens weg te gooien, en laatste 7 en voeg H100.plt toe aan het einde ren% fName%% fName: ~ 23, -7% H100.plt goto: eof 

Notitie

Dank aan Tommy voor deze tip op het forum.

Vorige Artikel Volgende Artikel

Top Tips