ATUALIZAÇÃO NO.2 - Agora, para a pergunta real : Por que variáveis aninhadas criadas pelo usuário não conseguem se expandir?
Existem alguns problemas gerais relacionados à expansão de variáveis no Windows. Eu já enfrentei o mesmo problema e não encontrei circunstâncias claras e reproduzíveis - o nível de recursão em que a expansão falha não é consistente, caracteres especiais parecem não desempenhar um papel etc.
A única solução viável que encontrei é adicionar variáveis ao nível de recursão por nível de recursão. Isso significa: tente excluir todas as variáveis que você deseja aninhar umas às outras (incluindo chamadas de PATH para suas variáveis definidas pelo usuário) e, em seguida, inicie do zero. Defina suas variáveis básicas (etc. ANT-HOME), confirme, verifique se ele foi expandido, se for, continue com o próximo nível de confirmação, verifique ... você entendeu.
RESPOSTA ATUALIZADA - Definindo variáveis de ambiente permanentes usando a CLI e a GUI - Role para baixo para obter a resposta original
Método da GUI:
No Windows 7, digite "system" no META-Prompt e você verá a 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 de linha de comando:
Para alterar variáveis de ambiente permanentemente, você deve usar o comando SETX na linha de comando do Windows. Diferente 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 ter um pouco de cuidado, porém, é fácil bagunçar suas variáveis com o SETX.
Por padrão, você altera as variáveis do usuário . Você pode ter uma variável de ambiente do usuário PATH que coexista felizmente com a variável PATH do sistema. Se você ainda não o definiu, faça isso digitando: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 pressione CTRL
+ SHIFT
+ ENTER
e confirme a caixa de diálogo UAC.
Para adicionar novos valores ao caminho, agora 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 por apenas o novo caminho.
A opção / m no final define a variável no ambiente do sistema.
Observe que você precisará criar uma nova linha de comando para fazer uso de sua nova variável.
Há também uma referência completa para o SETX no TechNet .
RESPOSTA ANTIGA
O comando SET atualiza as variáveis apenas pela duração da sessão atual da linha de comandos.
A sintaxe correta para adicionar um valor a uma variável é 'set [variable] =% [variable]%; [new value] `
Observe que à esquerda do sinal de igual, você deve omitir os sinais de porcentagem!
Fonte: Referência da linha de comando do TechNet para Windows Server