Eu tenho uma máquina Windows 7 que, quando o prompt de comando é executado por um usuário normal, falha ao expandir as variáveis de ambiente no %PATH%
. Se o prompt de comando for executado como administrador (clique com o botão direito do mouse em Executar como administrador ), ele %PATH%
será expandido adequadamente.
Especificamente, %PATH%
para cmd.exe
executar como o usuário (exibido via set path
) é o seguinte:
Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\
... enquanto que %PATH%
para cmd.exe
executar como administrador é o seguinte:
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Wbem;%SYSTEMROOT\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Windows Performance Toolkit\
Tentei fazer login como novo usuário para criar um novo perfil, e o problema persiste nesse perfil também. HKEY_CURRENT_USER\Environment\PATH
não existe e HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path
corresponde ao caminho definido em todo o sistema em Propriedades do computador -> Variáveis de ambiente.
Alguém tem alguma idéia do que possa ser, ou para onde eu posso procurar?
fonte
REG_SZ
o problema ocorrer, se eu configurá-la novamente,REG_EXPAND_SZ
ela será corrigida.Corri para o mesmo problema ao tentar configurar o Maven ...
Encontrei este post no Superusuário que esclareceu o problema, mas não funcionou para mim. O problema parecia ser sobre elevação de direitos, já que um shell de administrador funcionaria, mas um shell de usuário não. Finalmente, decidi recriar as variáveis de usuário como variáveis do sistema e adicioná-las ao caminho global.
Isso funcionou para algumas variáveis, mas eu tinha um par que ainda não se expandia. Eu os recriei com novos nomes algumas vezes, sem sucesso. No entanto, as variáveis finalmente se expandiram corretamente no shell do usuário depois que desativei o UAC, reiniciei, reativei o UAC e reiniciei novamente.
fonte
Eu tive um problema muito semelhante - a solução simples era adicionar um ponto-e-vírgula após o alias na definição do caminho .
Longa história:
Estou usando,
node.js
então, tenho um alias NODE_HOME definido por meio de uma variável de ambiente do usuário. Em seguida, anexo esse alias à minha variável de ambiente PATH .O que eu acho é que, após uma reinicialização, o shell perdeu o caminho para NODE_HOME, para que
npm
etc. não funcione. O que está acontecendo?Na inspeção, vejo que NODE_HOME está definido, mas que ele adquiriu magicamente um ponto e vírgula.
PATH agora termina na cadeia literal % NODE_HOME% em vez do caminho expandido para a pasta do nó:
Para fixar isso:
Em primeiro lugar, eliminar o ponto e vírgula errante a partir da extremidade da definição de NODE_HOME .
Segundo, adicione um ponto-e-vírgula após o símbolo NODE_HOME na definição de PATH :
Agora, quando inicio um novo shell e expanda PATH , ele encontra NODE_HOME :
E
npm
funciona de novo!fonte
PROBLEMA : Meu problema foi apenas semelhante, como entendi corretamente. Meu "Caminho" continha ...;% ANT_HOME% \ bin; ... Eu tinha a variável ANT_HOME definida corretamente em Variáveis do sistema (não usuário) e CMD -> SET igual a "echo% ANT_HOME%" as imprimiu corretamente .
SOLUÇÃO : Solucionei o problema movendo a pasta de c: \ dev \ 3rd \ ant ... para c: ** Arquivos de Programas (x86) ** \ dev \ 3rd \ ant ...
fonte