BAT команда для вставки символа в имени файла

вопрос

У меня есть проблема, решение которой я наткнулся пару лет назад, но, увы, мое хранилище недавно сломалось, и я потерял пакетный файл!

Мы начинаем с этого неудобного имени файла:

Оценка (все) _so2_1hr_conc_A_2p5h10.dat

Следующая утилита BAT ловко удаляет все перед «A» (первые 23 символа):

 @echo выключено для %% i in (* .dat) do (установить fName = %% i) и вызвать: rename goto: eof: rename :: Обрезает первые 23 символа fName ('rank (all) _so2_1hr_conc_'): ren% FName%% FName: ~ 23% Перейти: Eof 

Большой! Это делает:

A_2p5h10.dat

Теперь мне нужно преобразовать это в:

A_2p5h100.dat

Обратите внимание, что «... h10» должно быть «... h100». Обратите внимание, что в этом примере часть, предшествующая '.' это 'A_2p5h10', это может быть любая 8-символьная строка (поэтому нам понадобится подстановочный знак или что-то в этом роде).

Можете ли вы предложить процедуру, которая добавит «0» в середине имени файла (перед «.»)? В каталоге есть сотни имен файлов, которые должны иметь это преобразование.

Насколько я помню, критическая команда (я думаю, что использовал REN), которая использовала это, была чрезвычайно простой (содержала, как я помню, еще один%).

Решение

Вы можете использовать этот скрипт:

 @echo off для %% i in (* .dat) сделать (установить fName = %% i) и вызвать: rename goto: eof: rename :: Переименовать файл, отбросив первые 23 символа, последние 7 и добавив H100.plt в конце ren% fName%% fName: ~ 23, -7% H100.plt Перейти к: eof 

Заметка

Спасибо Томми за этот совет на форуме.

Предыдущая статья Следующая статья

Лучшие советы