Você não precisa da variável intermediária myvar
. Se você quiser, basta substituir %myvar%
por %1
abaixo.
Você precisa de dois ciclos de expansão.
Opção 1 - CALL
@echo off
call echo %%%1%%
Na primeira fase de análise
-
%%
se expande para%
-
%1
se expande paraJAVA_HOME
-
%%
se expande para%
Na fase CALL, %JAVA_HOME%
se expande para o valor que você está procurando.
Opção 2 - Expansão atrasada
@echo off
setlocal enableDelayedExpansion
echo !%1!
O formulário de expansão atrasada é muito mais fácil de ler
Veja Como o Windows Command Interpreter (CMD.EXE) analisa os scripts? para mais informações