%%~$PATH:X
é concatenação de caminho.
%%X
é o nome da variável de instância, que é definida como java.exe
, javac.exe
, etc., pois itera no FOR
loop
O ~$PATH:
entre %%
e X
está basicamente procurando por um arquivo chamado java.exe
(ou o que quer que %%X
esteja definido no momento) em cada diretório contido na variável de ambiente %PATH%
.
Além disso, consulte esta pergunta do StackOverflow , que reitera a técnica e contém algumas discussões sobre ela (mas não explica termos teóricos o que sintaticamente faz). Há uma boa discussão sobre PATHEXT
também.