%%~$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.