Como definir o ambiente PATH global em um arquivo em lotes?

11

A política de grupo em nosso ambiente substitui a variável PATH toda vez que faço logon e, ao executar um computador 'não padrão', ela fica completamente errada (C: \ Windows vs C: \ WINNT, faltando diretórios etc.). Atualmente, eu altero manualmente toda vez que faço logon, mas isso está começando a ficar cansativo.

Se eu usar o comando SET para alterar a variável PATH em um arquivo em lotes, ele só terá escopo local, portanto, a alteração se aplicará apenas aos comandos no arquivo em lotes.

set PATH=C:\WINNT;C:\WINNT\System32
set PATH

Esse arquivo em lotes exibirá o novo caminho, mas se eu for executado set PATHna linha de comando posteriormente, ainda será o caminho original.

Como definir o ambiente PATH global em um arquivo em lotes? Ou existe outra técnica que eu possa usar?

Cara alto
fonte

Respostas:

10

Você pode usar o comando setx :

setx PATH C:\WINNT;C:\WINNT\System32 /m

O Setx está disponível no Windows 2003 e posterior, mas pode ser baixado nas Ferramentas de Suporte do Windows XP.

Phil Ross
fonte
0

Isso é editado nas preferências do sistema -> [Variáveis ​​de ambiente]. Lá você adiciona caminhos para $ PATH

Kolypto
fonte
É o que estou fazendo no momento, sempre que faço logon. Quero fazer isso em um arquivo em lotes para que possa ser feito automaticamente.
25710 TallGuy
0

Para definir seu caminho no registro para que ele se propague, você pode criar um script do PowerShell que use alguma variação disso:

[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";newpart", "user")

Mas quando eu tentei agora, olhei para Propriedades do sistema> Variáveis ​​de ambiente, não apenas adicionei o caminho do meu teste, como também duplicou o caminho existente. Portanto, esse problema precisa ser resolvido.

Com base nesta página .

Pausado até novo aviso.
fonte