Maneira mais fácil de alterar variáveis ​​de ambiente no Windows 8? [duplicado]

27

Possível duplicado:
O que são PATH e outras variáveis ​​de ambiente e como posso defini-las ou usá-las?

Eu sei que posso editar minhas variáveis ​​de ambiente no Windows 8, acessando

Start -> All Apps -> Control panel -> System -> 
    Advanced System Settings -> Advanced -> Environment variables.

Mas, honestamente, isso é ridiculamente complexo.

Existe uma maneira mais fácil de alterar variáveis ​​de ambiente no Windows 8?

Por exemplo, se eu apenas quiser acrescentar uma nova pasta ao PATH, é realmente irritante passar por todas essas etapas. A interface do usuário também é péssima, porque é realmente doloroso editar valores variáveis ​​longos com a pequena entrada de texto.

Requisito 1: preciso que as alterações persistam (por exemplo, quando eu uso setno console, as alterações são perdidas quando eu fecho o console)

Requisito 2: eu preferiria uma solução que não envolva a instalação de partes extras de software, pois esse é o tipo de problema que eu tropeço toda vez que configuro uma nova caixa do Windows.

jsalonen
fonte
Nice post sobre o assunto: windows-commandline.com/set-path-command-line
Royi

Respostas:

32

Você já explorou o comando set e setx ? Com eles, você pode definir uma variável persistente. Além disso, o valor será aplicado imediatamente, não após o próximo logon.

Exemplo de SETcomando do Windows :

Imprima a variável de ambiente PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Use o comando set para definir a variável PATH

C:\Users\Charity>set PATH=%PATH%;C:\epicpath
C:\Users\Charity>

O comando acima se aplica somente à janela atual e a alteração é perdida quando a janela cmd é fechada.

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\epicpath

Exemplo de SETXcomando do Windows :

Imprima a variável de ambiente PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Use setx para definir a variável de ambiente:

C:\Users\Charity>setx PATH "%PATH%;C:\zombiepoke"
SUCCESS: Specified value was saved.

Feche e abra novamente o terminal cmd e execute:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\zombiepoke

Você precisa ter cuidado com aspas duplas. Se você deixar aspas entrar em sua variável de caminho, isso pode quebrar algo. No entanto, eles são necessários para especificar adendos ao% PATH% original.

Yury
fonte
1
Obrigado pela dica! Eu tentei, setx PATH=%PATH%;;C:\testmas recebo o erro de sintaxe :(
jsalonen 7/11/12
2
Não há sinal = ao usar setx. Setx /?
precisa
4
Nenhum argumento "setx" define a variável apenas no contexto do usuário. Para definir no contexto do sistema, use "setx / M". Não estar ciente disso pode confundir você, pois "echo% PATH%" mostrará os valores do sistema e do usuário concatenados.
Vituel
Observe que você precisa reiniciar o shell após fazer essa alteração para que ele entre em vigor.
Doug
nota menor: set path= ~ echo %PATH% [ set pathmostra também o valor de PATHEXT]
gerryLowry 6/15/15
10

Defina a variável de ambiente no Windows 8.

Você pode acessar a configuração avançada do sistema clicando com o botão direito do mouse Computerem file-explorere indo para properties.

É o mesmo que versões anteriores do Windows. Você também pode definir variáveis ​​de ambiente na linha de comando, conforme indicado aqui:

O que são PATH e outras variáveis ​​de ambiente, e como posso defini-las ou usá-las?

vishesh
fonte
4

Eu as troco em Powershell. Por exemplo, para adicionar uma pasta à variável PATH, abra o PowerShell e:

$newPath = $env:Path + ';C:\Temp'
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

Isso mudaria para todos os usuários. Para alterá-lo apenas para o usuário que está executando o comando, altere esse último parâmetro para 'Usuário'. Ou apenas altere-o temporariamente nesta sessão:

$env:Path += ';C:\temp'
EBGreen
fonte
ótimo! como você faz a concatenação $ env: Path + '; C: \ Temp' no prompt de comando? As soluções Set & Setx aqui explicam como definir o caminho inteiro no prompt de comando, mas nenhuma explica como ANEXAR algo ao caminho existente.
johny why
Veja como anexar algo ao caminho existente em um prompt de comando. / M é usado para alterar a variável SYSTEM, em vez da variável USER. As aspas são usadas, pois "Minha Pasta" contém espaços: setx PATH "% PATH%; C: \ Minha Pasta" / M
johny why
O único problema ao usar o prompt de comando é o limite de 255 caracteres, e o PATH do sistema provavelmente excederá isso (especialmente se você estiver anexando mais diretórios). Portanto, o Powershell é o caminho a seguir (eu posso estar errado, mas acredito que não haja limitação de contagem de caracteres no Powershell).
johny why
3

É muito fácil na linha de comando:

set MyVar=HelloWorld

(para acessar a linha de comando, digite cmdna tela inicial>.)

Para visualizar uma variável:

echo %MyVar%

Use setxpara definir permanentemente uma variável. A sintaxe é um pouco diferente. Tente procurar aqui , ou existem muitos outros sites por aí que lhe dirão como usá-lo.

ACarter
fonte
Sim, obrigado, cara, eu já sei disso, mas o problema é que, se você faz alterações dessa maneira, elas não persistem - ou seja, quando eu fecho e reabra a linha de comando, as variáveis ​​são revertidas para os padrões. Atualizei minha pergunta para refletir isso - desculpe.
Jsalonen
Você sabe se eu posso fazer um setque persista?
Jsalonen
1
setx é para mudanças permanentes
EBGreen
Existe uma maneira de definir a variável apenas até a próxima reinicialização? Caso contrário, se eu usar o conjunto de outro programa (digamos comando do SO do Python ou MATLAB), ele permanecerá enquanto a sessão do programa estiver aberta?
Royi 14/08/16