Вот простое решение, которое использует удобный hybrid JScript/batch utility called REPL.BAT, который выполняет поиск и замену регулярных выражений на stdin и записывает результат в stdout. Это чистый скрипт, который запускается на любой современной машине Windows с XP и дальше - не требуется сторонний исполняемый файл.
У него есть много опций, в том числе опция A
, которая содержит только список подстановочных строк, которые соответствуют, и S
, который читает из переменной окружения вместо stdin. Полная документация встроена в скрипт.
Предполагая, что REPL.BAT находится в вашем текущем каталоге или, еще лучше, где-то внутри вашего пути, то следующее устанавливает value
соответствующим образом. Он будет определен, если \branches\
не может быть найден, или если ничего не следует \branches\
:
set "mypath=c:\test\branches\9.1\_build"
set "value="
for /f "eol=\ delims=" %%A in (
'repl.bat ".*\\branches\\([^\\]*).*" "$1" AS mypath'
) do set "value=%%A"
echo %value%
Да, в .CMD файл –
Рекомендации для отношения к вашему вопросу: Никогда не использовать PATH в качестве собственной переменной. Он зарезервирован для хранения папок, которые нужно искать при поиске команды. Изменение значения может вызвать проблемы позже по линии. – dbenham
Спасибо, человек .. это только пример, но хорошая рекомендация .. –