Если, и только тогда, когда *.
шаблон может происходить только один раз в строке, а часть после *.
не содержится в той части, прежде чем *.
, следующее может быть использовано:
rem this is the original string containing one `*.`:
set "STRING=TEST_SINISTRE*.csv"
rem now get everything after `*.`:
rem (if `*` is the first character in substring substitution, it means everything up to
rem and including the search string is to be replaced, by nothing here in this case)
set "SUBSTR=%STRING:**.=%"
rem get everything before `*.`, including the `*`:
setlocal EnableDelayedExpansion
set "SUBSTL=!STRING:.%SUBSTR%=!"
rem truncate the `*` from the string:
endlocal & set "SUBSTL=%SUBSTL:~,-1%"
Поскольку используется синтаксис подстановки для расширения переменных, это делается нечувствительным к регистру.
Чтобы сделать его более безопасным, вы можете добавить что-то, что, скорее всего, никогда не произойдет с вашей исходной строкой временно и удалить его впоследствии. Для достижения этой цели, замените set
командную строку между блоком в setlocal
/endlocal
со следующим (с помощью приложения ###
здесь, например):
set "STRING=!STRING!###"
set "SUBSTL=!STRING:.%SUBSTR%###=!"
Большого спасибо :-) –