adicionando PATH com SETX ou PATHMAN ou algo mais?

12

Estou tentando adicionar um PATH da linha de comando, como acontece com SETX% PATH% ... ele sempre expande o PATH, o que eu não quero.

PATHMAN é exatamente para esse propósito, mas não funciona para mim no Windows 7. Ele congela na maioria das vezes e não verifica se há duplicatas.

Deve haver uma ferramenta para gerenciar variáveis ​​PATH da maneira correta. SETX seria perfeito, mas talvez não com a sintaxe% PATH%.

hyperknot
fonte

Respostas:

13

Consulte o artigo Edite a variável de ambiente PATH no Windows sem problemas .

Ele recomenda o uso de pathed :

Por exemplo, diga que você possui suas ferramentas Sysinternal em C: \ Bin \ Sysinternals e deseja adicioná-las ao PATH. Simplesmente faça:

pathed /append C:\Bin\Sysinternals /machine

Se você deseja adicioná-los ao sistema PATH do usuário, faça:

pathed /append C:\Bin\Sysinternals /user
harrymc
fonte
Era exatamente isso que eu estava procurando! A partir do artigo, eu tentei as outras 3 soluções já sem felicidade. Parece que este é o que eu estava procurando. Funciona perfeitamente! Aliás, não tem nada a ver com a Sysinternals.
precisa saber é
Supõe-se que funcione, mas há um bug essencial. Se você tentar ADD / APPEND algo no caminho e no caminho do usuário não está definido, o utilitário falhará ao adicionar o caminho.
sorin
1
Acabei de experimentar este aplicativo; foi frustrante que não parecesse funcionar. Percebi que preciso executá-lo enquanto estiver logado como Administrador, OU execute-o em um shell de comando que foi iniciado com "Executar como Administrador". Além disso, pode ser necessário usar categoricamente "/ machine" se desejar afetar o caminho do nível da máquina. Boa sorte! E obrigado a @harrymc pela dica; +1 de mim!
Dan H
FWIW, existe outro utilitário "encaminhado" publicado no code.google.com que parece fazer praticamente o mesmo com uma sintaxe ligeiramente diferente.
Syneticon-dj
4

(Eu sei que você já respondeu a esta pergunta, mas)

O problema com o uso setxé que você não está citando a sequência que deseja definir. Como o ;caractere é um delimitador de comando (você pode executar comandos em sequência para executá-lo em sucessão), ele pensa que está configurando o caminho e, em seguida, executando outro comando.

O que você deve fazer é o seguinte:

setx /M path "C:\perl\bin;%path%"

Isso antecede minha %path%variável com C:\perl\bin, porque eu quero que ela venha antes de qualquer outra coisa que possa ser instalada. Os /Mmeios que eu quero dizer o System EnvVar, não o usuário.

gWaldo
fonte
2
Ele vai truncar caminhos mais do que 1024
wayofthefuture
1

Existem três métodos que conheço, dos quais um é permanente (ao adicionar variáveis ​​de ambiente) e outros 2 r temp .. apenas para definir o caminho e, portanto, o caminho definido por eles é destruído depois que o cmd é finalizado (fechado). Começando com os métodos: -

  1. Método temporário 1: -

    setx PATH "% PATH%; c: \ nome do caminho;"

  2. Método temporário 2: -

    definir PATH = c: \ nome do caminho;% PATH%

  3. Método Permanente: -

    caminho / anexar c: \ nome do caminho / máquina (para todos os usuários) caminho / anexar c: \ nome do caminho / usuário (para usuário atual)

Chaitanya Bhardwaj
fonte
0

No Windows 10 x64 1909 (e provavelmente compilações anteriores), use o recurso Pesquisa no Menu Iniciar com "definir variáveis" para localizar e executar um dos seguintes resultados retornados para acessar o editor gráfico revisado pelo MS, selecionando o botão [Variáveis ​​de Ambiente]: - Edite o variáveis ​​ambientais do sistema - Edite variáveis ​​ambientais da sua conta

O editor também pode ser acessado através do botão [Variáveis ​​de ambiente] na caixa de diálogo Propriedades do sistema antiga.

Barney Blue
fonte