BAT-Befehl zum Einfügen eines Zeichens. in einem Dateinamen

Problem

Ich habe ein Problem, dessen Lösung ich vor ein paar Jahren gefunden habe, aber leider ist mein Speicher kürzlich abgestürzt und ich habe die Batch-Datei verloren!

Wir fangen mit diesem peinlichen Dateinamen an:

rank (all) _so2_1hr_conc_A_2p5h10.dat

Das folgende BAT-Dienstprogramm entfernt geschickt alles vor dem 'A' (die ersten 23 Zeichen):

 @echo off für %% i in (* .dat) do (setze fName = %% i) & rufe: rename goto: eof: rename :: Beschneide die ersten 23 Zeichen von fName ('rank (all) _so2_1hr_conc_'): ren% fName%% fName: ~ 23% goto: eof 

Großartig! Dies ergibt:

A_2p5h10.dat

Jetzt muss ich das umwandeln in:

A_2p5h100.dat

Beachten Sie, dass '... h10' '... h100' sein muss. Beachten Sie, dass in diesem Beispiel der Teil vor dem '.' Ist 'A_2p5h10', kann es sich um eine beliebige 8-stellige Zeichenfolge handeln (wir benötigen also einen Platzhalter oder etwas anderes).

Können Sie bitte eine Routine vorschlagen, bei der die '0' in der Mitte des Dateinamens (vor dem '.') Eingefügt wird? Das Verzeichnis enthält Hunderte von Dateinamen, für die diese Konvertierung erforderlich ist.

Soweit ich mich erinnere, war der kritische Befehl (ich glaube, er verwendete REN), der dies ausführte, extrem einfach (enthielt, wie ich mich erinnere, einen von mehr%).

Lösung

Sie können dieses Skript verwenden:

 @echo off für %% i in (* .dat) do (setze fName = %% i) & call: rename goto: eof: rename :: Benenne die Datei um, indem du die ersten 23 Zeichen und die letzten 7 verwerfst und H100.plt hinzufügst am Ende ren% fName%% fName: ~ 23, -7% H100.plt goto: eof 

Hinweis

Danke an Tommy für diesen Tipp im Forum.

Vorherige Artikel Nächster Artikel

Top-Tipps