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.


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.


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


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'

ó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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.