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
Заметка
Спасибо Томми за этот совет на форуме.