Windows 7 PATH não está se expandindo

3

Estou usando o seguinte para criar e editar variáveis de ambiente para o Windows 7.

Control Panel\All Control Panel Items\System -> Advanced system settings -> Environment Variables

Em System variables , tenho as seguintes variáveis pertinentes:

PROG32=C:\Program Files (x86)
REALDWG_SDK_DIR=%PROG32%\Autodesk\RealDWG 2011
Path=%REALDWG_SDK_DIR%;%PROG32%\Haskell\bin

No entanto, acontece o seguinte:

C:\>echo %PROG32%
C:\Program Files (x86)

C:\>echo %Path%
%REALDWG_SDK_DIR%;C:\Program Files (x86)\Haskell\bin

É possível ter uma cadeia de variáveis expandida?

Se eu renomear Path para outra coisa, às vezes recebo o problema e às vezes não.

    
por Thomas Eding 13.01.2011 / 23:35

2 respostas

6

Editar: Depois de experimentar isso um pouco mais, o problema real parece estar relacionado ao (s) nome (s) da variável - talvez algum tipo de erro no analisador que expande as variáveis aninhadas. Parece que a variável aninhada que você está adicionando precisa vir antes da variável de nível superior se eles forem classificados em ordem alfabética.

Como exemplo, a alteração de REALDWG_SDK_DIR para OEALDWG_SDK_DIR funcionará, assim como BEALDWG_SDK_DIR, mas PEALDWG_SDK_DIR não será, nem ZEALDWG_SDK_DIR. Alternativamente, a renomeação de PATH para SATH funcionará, mas a RATH não funcionará.

Assim, a solução para o seu problema é usar algo que comece com uma letra antes de P, ou então digite manualmente a primeira parte do caminho.

Resposta inicial (incorreta):

O que você está fazendo deve estar funcionando. Verifique se você não tem um erro de digitação em algum dos nomes de variáveis ao longo do caminho - essa é a única razão pela qual posso pensar que isso faria com que ele imprimisse o nome sem expandir. Além disso, você precisará abrir um novo prompt de comando depois de aplicar as alterações.

    
por 14.01.2011 / 02:14
1

Gostaria de saber se isso pode estar relacionado a esse defeito na Base de Conhecimento da Microsoft:

link

Eu encontrei o mesmo problema com variáveis de ambiente em alguns sistemas XP (não apenas% APPDATA%, como o artigo da KB é sobre). Usando vários métodos para definir as variáveis de ambiente, incluindo as mencionadas no artigo da base de conhecimento, não ajudaram ... nem foi setx (ferramenta Windows Resource Kit).

No entanto, os mesmos métodos funcionaram em outros sistemas. É muito frustrante - a única solução que encontrei parece estar usando caminhos explícitos em vez de referências de variáveis de ambiente (o que é uma droga, mas funciona).

Por exemplo,

MYVAR=C:\something
PATH=C:\something\bin

em vez de:

MYVAR=C:\something
PATH=%MYVAR%\bin

EDIT: Por enquanto, acabei de usar o mklink ( link ) para criar Junções (basicamente links simbólicos), em vez de se misturar com variáveis de ambiente e seu buggieness. Por exemplo, em vez de MYVAR como um env var, eu apenas criei c:\myvar - ele pode apontar para E:\some\really\long\and\hard\to\remember\let\alone\type\path ou o que você quiser. mklink é consistente, pode ser criado por meio da linha de comando e eles persistem entre as reinicializações. Por exemplo:

mklink /j c:\myvar c:\something
mklink /j c:\myvar E:\some\really\long\and\hard\to\remember\let\alone\type\path
    
por 08.02.2011 / 20:22