Из вашего вопроса следует, что вы пытаетесь получить имя деда сценария, в данном случае mq_1.7.6
.
Однако все еще немного неясно, хотите ли вы это изолированнот. е. mq_1.7.6
или как абсолютный путь, например P:\ath\to\mq_1.7.6
Если первым является ваше намерение, то должно быть достаточно следующего:
@For %%A In ("%~f0\..\..")Do @Echo(%%~nxA
Если вам это нужнов качестве переменной:
@For %%A In ("%~f0\..\..")Do @Set "Gp=%%~nxA"
Если вы просто пытаетесь захватить строку версии из mq_1.7.6
, в данном случае 1.7.6
, то простая дополнительная строка может быть всем, что требуется:
@For %%A In ("%~f0\..\..")Do @Set "Gp=%%~nxA"
@Set "Gp=%Gp:*_=%"
Если, с другой стороны, вы хотели последнее, то есть абсолютный путь прародителя сценариев, единственное реальное отличие заключается в расширении метавариума:
@For %%A In ("%~f0\..\..")Do @Echo(%%~fA
Если вам нужно это как переменная, то:
@For %%A In ("%~f0\..\..")Do @Set "Gp=%%~fA"
Если ни одна из моих интерпретаций вашего намерения не верна, можете ли вы привести пример того, что вы хотите вернуть, и хотите ли вычто просто печатать наконсоль или сохранение в качестве переменной и т. д.