%%~$PATH:X
- конкатенация пути.
%%X
- это имя переменной экземпляра, для которой задано значение java.exe
, javac.exe
и т.д. Во время итерации цикла FOR
~$PATH:
между %%
и X
в основном ищет файл с именем java.exe
(или любой другой %%X
, установленный на данный момент) в каждом каталоге, содержащемся в переменной среды %PATH%
.
Кроме того, посмотрите этот вопрос StackOverflow, который повторяет эту технику и содержит некоторое обсуждение ее (но не объясняет теоретически, что он делает синтаксически). Там тоже хорошая дискуссия о PATHEXT
.