Estou tentando adicionar C:\xampp\php
à minha PATH
variável de ambiente do sistema no Windows.
Eu já o adicionei usando a caixa de diálogo Variáveis de ambiente.
Mas quando digito no meu console:
C:\>path
não mostra o novo C:\xampp\php
diretório:
PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin
Eu tenho duas perguntas:
- Por quê isso aconteceu? Existe algo que eu fiz de errado?
- Além disso, como adiciono diretórios à minha
PATH
variável usando o console (e programaticamente, com um arquivo em lotes)?
windows
command-line
path
environment-variables
Netorica
fonte
fonte
Respostas:
Isso modifica apenas o registro. Um processo existente não usará esses valores. Um novo processo fará isso se for iniciado após essa alteração e não herdar o ambiente antigo de seu pai.
Você não especificou como iniciou a sessão do console. A melhor maneira de garantir isso é sair do shell de comando e executá-lo novamente. Ele deve herdar o PATH atualizado.
fonte
WM_SETTINGCHANGE
mensagem fosse enviada de uma aplicação? stackoverflow.com/a/8358361Opção 1
Depois de alterar
PATH
com a GUI, feche e reabra a janela do console.Isso funciona porque apenas os programas iniciados após a alteração verão o novo
PATH
.opção 2
Execute este comando na janela de comando que você abriu:
Este comando anexa
C:\your\path\here\
ao atualPATH
.Dividindo:
set
- Um comando que altera as variáveis de ambiente do cmd apenas para a sessão atual do cmd ; outros programas e o sistema não são afetados.PATH=
- Significa quePATH
é a variável de ambiente a ser alterada temporariamente.%PATH%;C:\your\path\here\
- A%PATH%
peça se expande para o valor atual dePATH
e;C:\your\path\here\
é concatenada para ele. Isso se torna o novoPATH
.fonte
Você pode adicionar permanentemente um caminho para
PATH
com osetx
comando:Remova o
/M
sinalizador se desejar definir o usuário emPATH
vez do sistemaPATH
.Notas:
setx
comando está disponível apenas no Windows 7 e posterior.Você deve executar este comando em um prompt de comando elevado.
Se você deseja alterá-lo apenas para a sessão atual, use set .
fonte
SETX /M path "%path%;C:\Program Files (x86)\Git\bin\"
definir o valor PATH no nível da máquina%PATH%
variável, este comando mescla variáveis globais env com as dos usuários. Não é? Isso pode cria efeitos colaterais indesejados, especialmente com a opção / M%PATH%
variável pode não estar sincronizada com as variáveis de ambiente, pois é carregada no início do prompt de comando e nunca é recarregada posteriormente (mesmo ao executar o comando setx). Também poderia ter sido alterado localmente por scripts executados anteriormente.Você não precisa de qualquer
set
ousetx
de comando, basta abrir o terminal e digite:Isso mostra o valor atual da variável PATH. Agora você deseja adicionar um diretório a ele? Basta digitar:
Se, por qualquer motivo, você desejar limpar a variável PATH (nenhum caminho ou excluir todos os caminhos), digite:
Atualizar
Como Danial Wilson observou no comentário abaixo, ele define o caminho apenas na sessão atual. Para definir o caminho permanentemente, use,
setx
mas esteja ciente, embora isso o defina permanentemente, mas NÃO na sessão atual, portanto, você deve iniciar uma nova linha de comando para ver as alterações, mais informações aqui .Para verificar se existe uma variável ambiental ou ver seu valor, use o comando ECHO:
fonte
PATH %PATH%;C:\Program Files\...
vez dePATH "%PATH%;C:\Program Files\..."
Eu usaria o PowerShell!
Para adicionar um diretório ao PATH usando o PowerShell, faça o seguinte:
Para definir a variável para todos os usuários, em toda a máquina, a última linha deve ser como:
Em um script do PowerShell, convém verificar a presença do seu
C:\xampp\php
antes de adicionar ao PATH (caso tenha sido adicionado anteriormente). Você pode agrupá-lo em umaif
condicional.Então, juntando tudo:
Melhor ainda, pode-se criar uma função genérica. Basta fornecer o diretório que você deseja adicionar:
Você poderia melhorar as coisas fazendo um polimento. Por exemplo, use
Test-Path
para confirmar que seu diretório realmente existe.fonte
SetEnvironmentVariable
com oMachine
parâmetro que você precisa para abrir o PowerShell com direitos de administrador$env:userprofile
.user
oumachine
na chamada deGetEnvironmentVariable
. Caso contrário,$PATH
conterá o valor da parte do usuário e da máquina do registro que explodirá desnecessariamente a variável de caminho ao armazená-la novamente.SETX mais seguro
Cite todos os comentários sobre a resposta inicial
SETX
do @ Nafscript .SETX
por padrão, atualizará seu caminho de usuário .SETX ... /M
atualizará o caminho do sistema .%PATH%
contém o caminho do sistema com o caminho do usuário anexadoAdvertências
PATH
-SETX
truncará seu lixo eletrônico com mais de 1024 caracteresSETX %PATH%;xxx
- adiciona o caminho do sistema ao caminho do usuárioSETX %PATH%;xxx /M
- adiciona o caminho do usuário no caminho do sistemaA página ss64 SETX tem alguns exemplos muito bons. Importante, ele aponta para onde estão as chaves de registro
SETX
vsSETX /M
Instruções de uso
Anexar ao usuário
PATH
append_user_path.cmd
Anexar ao sistema
PATH
append_system_path.cmd
. Deve ser executado como administrador.(é basicamente o mesmo, exceto com um modificador
Key
e um diferenteSETX /M
)Alternativas
Finalmente, existe uma versão potencialmente aprimorada chamada SETENV, recomendada pela página ss64 SETX, que se divide em definir as variáveis de ambiente do usuário ou do sistema.
1. Não é estritamente verdade
fonte
Tarde para a festa - mas útil se você já estiver no diretório que deseja adicionar ao PATH.
set PATH=%PATH%;%CD%
editar: conforme comentário - funciona com o cmd padrão do Windows, mas não no PowerShell.
Para o PowerShell, o
%CD%
equivalente é[System.Environment]::CurrentDirectory
fonte
[System.Environment]::CurrentDirectory
Além de todas as respostas, se você deseja uma boa ferramenta GUI para editar as variáveis de ambiente do Windows, pode usar o Rapid Environment Editor
tente! é seguro de usar e incrível!
http://www.rapidee.com/en/
fonte
Substituir executáveis já incluídos;
fonte
Verificando as sugestões acima no Windows 10 LTSB e com um vislumbre dos contornos de "ajuda" (que podem ser visualizados ao digitar 'comando /?' No cmd), concluí que o comando PATH altera a variável de ambiente do sistema Os valores do caminho apenas para a sessão atual, mas após a reinicialização, todos os valores são redefinidos para o padrão - exatamente como eram antes do uso do comando PATH.
Por outro lado, o uso do comando SETX com privilégios administrativos é muito mais poderoso, pois altera esses valores para sempre (ou pelo menos até a próxima vez que esse comando for usado ou até a próxima vez em que esses valores forem manipulados manualmente pela GUI ...).
Mas, por uma questão de clareza, pensei que compartilhar aqui o melhor uso da sintaxe SETX que funcionasse para mim poderia ajudar alguém um dia:
onde qualquer sinal de igual '=' deve ser evitado, e não se preocupe com espaços! não é necessário inserir mais aspas para um caminho que contenha espaços dentro dele - o sinal de divisão ';' faça o trabalho.
A palavra-chave PATH que segue o SETX define qual conjunto de valores deve ser alterado entre os possíveis valores das variáveis de ambiente do sistema e o% PATH% (a palavra PATH cercada pelo sinal de porcentagem) dentro das aspas indica ao sistema operacional para deixar o existente PATH valores como estão e adicione o caminho a seguir (aquele que segue o sinal de divisão ';') aos valores existentes.
HTH
fonte
Em relação ao ponto 2 , estou usando um arquivo em lotes simples que está preenchendo
PATH
ou outras variáveis de ambiente para mim. Portanto, não há poluição das variáveis de ambiente por padrão. Este arquivo em lotes é acessível de qualquer lugar para que eu possa digitar:fonte
source
um arquivo como esse. mybatchfile
).Em um prompt de comando, você diz ao Cmd para usar a linha de comando do Explorer, precedendo-a com
start
.Então
start Yourbatchname
.Observe que você precisa se registrar como se seu nome fosse
batchfile.exe
.Programas e documentos podem ser adicionados ao registro, portanto, digitar seu nome sem o caminho na caixa de diálogo Iniciar - Executar ou atalho permite que o Windows os encontre.
Este é um arquivo de registro genérico. Copie as linhas abaixo para um novo documento de texto e salve-o como anyname.reg. Edite-o com seus programas ou documentos.
Nos caminhos, use \ para separar nomes de pastas nos caminhos de chave, pois o regedit usa um único \ para separar seus nomes de chave. Todos os arquivos reg começam com REGEDIT4. Um ponto-e-vírgula transforma uma linha em um comentário. O símbolo @ significa atribuir o valor à chave em vez de um valor nomeado.
O arquivo não precisa existir. Isso pode ser usado para definir o Word.exe para abrir o Winword.exe.
A digitação
start batchfile
iniciará o iexplore.exe.Você já foi informado sobre o caminho em outra resposta. Veja também as
doskey /?
macros cmd (elas funcionam apenas ao digitar).Você pode executar comandos de inicialização para o CMD. Referência técnica do Windows Recource Kit
AutoRun
Descrição
Contém comandos que são executados sempre que você inicia o Cmd.exe.
fonte
Uma alternativa melhor ao Painel de Controle é usar este programa freeware da sourceforge chamado Pathenator:
https://sourceforge.net/projects/pathenator/
No entanto, ele funciona apenas para sistemas com Dot.Net 4.0 ou superior, como Windows 7,8 ou 10.
fonte
Se você executar o comando
cmd
, ele atualizará todas as variáveis do sistema para essa janela de comando.fonte
exit
partida exigirá que você ligue duas vezes, primeiro para fechar a nova e depois para fechar a primeira sessão (com o ambiente antigo).use pathed from gtools
faz as coisas de maneira intuitiva, por exemplo:
e mostra resultados sem a necessidade de gerar um novo cmd !
fonte
Faça backup da minha variável de ambiente PATH atual: execute
cmd
e execute o comando:path >C:\path-backup.txt
Obter meu valor de caminho atual no arquivo C: \ path.txt (da mesma maneira)
setx path "Here you should insert string from buffer (new path value)"
php -v
fonte
Por mais trivial que possa ser, eu tive que reiniciar o Windows quando enfrentar esse problema.
Estou executando o Windows 7 x64. Fiz uma atualização manual para a variável PATH do sistema. Isso funcionou bem se eu executar o cmd.exe no menu stat. Mas se eu digitar "cmd" na barra de endereços do Windows Explorer, ele parece carregar o PATH de outro lugar, o que não teve minhas alterações manuais.
(Para evitar dúvidas - sim, fechei e executei novamente o cmd algumas vezes antes de reiniciar e isso não ajudou.)
fonte