UPDATE NO.2 - Agora para a pergunta atual : Por que as variáveis aninhadas criadas pelo usuário não expandem?
Existem alguns problemas gerais relativos à expansão de variáveis no Windows. Já enfrentei o mesmo problema e não encontrei nenhuma circunstância clara e reproduzível - o nível de recursão em que a expansão falha não é consistente, os caracteres especiais não parecem desempenhar um papel, etc.
A única solução viável que encontrei é adicionar o nível de recursividade de variáveis por nível de recursão. Isso significa: tente excluir todas as variáveis que você deseja aninhar umas nas outras (incluindo chamadas do PATH para as variáveis definidas pelo usuário) e, em seguida, inicie a partir do zero. Defina suas variáveis básicas (etc. ANT-HOME), confirme, verifique se ela está expandida, se estiver, continue com o próximo nível commit, verifique ... você tem a idéia.
RESPOSTA ATUALIZADA - Definindo variáveis de ambiente permanentes usando a CLI e a GUI - Role para baixo para a resposta original
Método da GUI:
No Windows 7, basta digitar "system" no META-Prompt e você verá uma entrada "Edit the System Environment Variables". A partir daí, clique em "Variáveis de ambiente". Lá, você pode editar a variável de sistema PATH (lista inferior) ou adicionar / editar uma nova variável PATH às variáveis de ambiente do usuário.
Método da linha de comando:
Para alterar variáveis de ambiente permanentemente, você precisa usar o comando SETX na linha de comando do Windows. Ao contrário de outras versões do Windows, ele vem embutido no Windows 7. Sua sintaxe difere muito do SET, mas também é poderosa. Você terá que ser um pouco cuidadoso, é fácil fazer uma bagunça de suas variáveis com o SETX.
-
Por padrão, você altera variáveis do usuário . Você pode ter uma variável de ambiente de usuário PATH que coexiste alegremente com a variável PATH do sistema. Se você ainda não definiu, digite: SETX PATH yourpath
-
Você também pode adicionar um valor à variável de sistema PATH. Para fazer isso, primeiro você precisa abrir uma linha de comando com privilégios de administrador. Para fazer isso, pressione a tecla Meta (Windows), digite cmd
e clique em CTRL
+ SHIFT
+ ENTER
e confirme a caixa de diálogo do UAC.
Para adicionar novos valores ao caminho, você pode inserir
setx path "%path%;yournewpath" /m
É importante seguir essa sintaxe! Se você não incluir% path% primeiro, todos os valores existentes do caminho serão perdidos e substituídos apenas pelo novo caminho.
A opção / m no final define a variável no ambiente do sistema.
Por favor, note que você terá que abrir uma nova linha de comando para fazer uso de sua nova variável.
Há também uma referência completa para a SETX no TechNet .
RESPOSTA ANTIGA
O comando SET atualiza as variáveis somente pela duração da sessão da linha de comando atual.
A sintaxe correta para adicionar um valor a uma variável é 'set [variable] =% [variable]%; [novo valor]'
Observe que, à esquerda do sinal de igual, você deve omitir os sinais de porcentagem!
Fonte: Referência de linha de comando do TechNet para o Windows Server