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