Por que não consigo usar% USERPROFILE% em% PATH%?

5

Na minha máquina com Windows 7, usando as Propriedades do sistema > Variáveis de Ambiente , tento adicionar %USERPROFILE%\Bin à variável de sistema PATH . Por alguma razão, isso não funciona, mesmo que %SystemRoot%\system32 funcione bem.

Quando tento executar comandos do console, os arquivos na minha pasta Bin não são encontrados, mesmo que arquivos na pasta System32 sejam encontrados.

A única diferença entre UserProfile e SystemRoot que eu posso ver é que a primeira é uma variável do usuário enquanto a segunda é uma variável do sistema.

echo %USERPROFILE%\Bin yields c:\Users\zano , e se eu adicionar c:\Users\zano\Bin explicitamente, tudo funcionará bem.

Qual é o problema aqui?

    
por Zano 27.06.2012 / 15:51

3 respostas

11

As variáveis do sistema são definidas antes das variáveis do usuário. Consequentemente, no momento em que as variáveis do sistema estão sendo configuradas, nenhuma das variáveis do usuário existe ainda.

Você pode criar uma nova variável de usuário chamada PATH e defini-la como " %USERPROFILE%\Bin;%PATH% ". Eu não testei, mas pode fazer o que você quer. USERPROFILE pode ainda não ter sido configurado, portanto, talvez seja necessário codificar o caminho para sua variável de usuário, mas isso não afetará outros usuários no computador.

    
por 27.06.2012 / 16:01
4

Semelhante ao que Stephen disse, mas

Crie uma variável de ambiente de usuário chamada PATH Dentro disso, você pode usar% USERPROFILE% corretamente - USERPROFILE é expandido antes que a seção do usuário seja processada. Esse PATH de usuário será automaticamente anexado ao caminho do sistema, portanto, não é necessário adicionar a parte% PATH%.

por exemplo,

Variável do sistema: PATH = c: \ path1 Variável de usuário PATH =% USERPROFILE% \ path2

Caminho resultante: PATH = c: \ path1; C: \ Usuários \ myuser \ path2

    
por 14.08.2012 / 13:00
4

Stephen Jennings estava certo, mas apenas um pouco de clareza. No Windows, se o caminho variável do usuário existir, ele será automaticamente anexado ao caminho da variável do sistema. A variável do usuário Path tem permissão para usar% UserProfile% enquanto a variável do sistema obtém o texto literal "% UserProfile%".

Portanto, criar a variável de usuário "Caminho" e defini-la como% UserProfile% \ Bin era tudo o que era necessário.

Exemplo 1:

Caminho da variável do sistema = C: \ WINDOWS \ Caminho da Variável do Usuário =% UserProfile% \ Bin

O caminho do usuário será

C: \ WINDOWS; C: \ Usuários \ Usuário \ Bin

Exemplo 2:

Caminho da variável do sistema = C: \ WINDOWS \;% UserProfile% \ Bin

O caminho da variável do usuário não está definido.

O caminho do usuário será

C: \ WINDOWS \;% UserProfile% \ Bin

Você não quer o Exemplo 2.

    
por 20.01.2014 / 11:06