1

Это вопрос относительно сценария оболочки CMD, я видел сценарий, как показано ниже:

FOR %%X in (java.exe javac.exe ant.bat android.bat) do (
    SET FOUND=%%~$PATH:X
    IF NOT DEFINED %FOUND% GOTO MISSING
)

Может кто-нибудь объяснить мне, что такое %%~$PATH:X ?

2 ответа2

3

%%~$PATH:X - конкатенация пути.

%%X - это имя переменной экземпляра, для которой задано значение java.exe , javac.exe и т.д. Во время итерации цикла FOR

~$PATH: между %% и X в основном ищет файл с именем java.exe (или любой другой %%X , установленный на данный момент) в каждом каталоге, содержащемся в переменной среды %PATH% .

Кроме того, посмотрите этот вопрос StackOverflow, который повторяет эту технику и содержит некоторое обсуждение ее (но не объясняет теоретически, что он делает синтаксически). Там тоже хорошая дискуссия о PATHEXT .

2

Каждый каталог в переменной среды PATH сканируется на наличие файла% X, а имя первого соответствующего каталога сохраняется в FOUND.

Введите HELP FOR в оболочке CMD Windows, чтобы получить полную документацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .