В вашей задаче несколько проблем:
1. Убрать двойное расширение. Если расширение всегда фиксировано, то можно просто использовать операцию замены, которая есть в set. Если расширение не фиксировано, то можно использовать 2 вызова процедуры (или вложенные циклы for) и модификатор
%%~dpnI
.
2. Выделить подстроку в имени файла. Само имя файла выделить из пути, из которого уже предварительно удалены расширения, можно с помощью модификатора
%%~nI
. Далее можно использовать цикл
for /f
для разбиения имени на составные части, разделителем указать символы "+", "-", "_"
Обход файлов делается в цикле for.
Для справки смотрите:
:: тут описание модификаторов и описание разновидностей for
for /?
:: операция замены, арифметика, ...
set /?
:: Вам нужно будет, скорее всего использовать режим отложенного расширения переменных: ENABLEDELAYEDEXPANSION. Разберитесь с ним, это достаточно тонкий и не очевидный момент
setlocal /?
:: просто так
if /?
:: Каждая команда cmd имеет свою справку используйте ее. Это основной источник информации по программированию cmd
...