Qual é a diferença entre
SETX
eSET
?
Conforme meu entendimento:
Ambos são usados para definir variáveis de ambiente
SETX
é para variáveis de usuário.
SET
é para variáveis de shell.
windows
environment-variables
Premraj
fonte
fonte
SET /?
eSETX /?
- isso deve lhe dar algumas idéias.Respostas:
Receio que não seja tão simples assim. As variáveis de ambiente não são limitadas pelo escopo, como você sugere, mas você está certo de que a vida útil do valor na variável é diferente ao comparar os verbos.
Set
modifica os valores atuais do ambiente do shell (a janela) e a alteração está disponível imediatamente, mas é temporária. A alteração não afetará outros shells em execução e, assim que você fechar o shell, o novo valor será perdido até que você execute o conjunto novamente.setx
modifica o valor permanentemente, o que afeta todos os shells futuros, mas não modifica o ambiente dos shells já em execução. Você precisa sair do shell e reabri-lo antes que a alteração esteja disponível, mas o valor permanecerá modificado até você alterá-lo novamente.Veja aqui um exemplo: http://batcheero.blogspot.com/2008/02/set-and-setx.html
fonte
Na verdade, podemos definir variáveis em três escopos:
1. Shell
2. Usuário
3. Sistema (Máquina) ou Global
SET: Crie ou atualize o escopo do shell atual para temporário.
SETX: crie ou atualize as variáveis de ambiente do usuário atual para permanente.
Nas variáveis de ambiente Usuário e Sistema da GUI.
fonte
Adicionando um ponto que foi perdido por outros respondentes.
Para definir uma variável de ambiente do sistema em vez de uma variável de ambiente do usuário, basta usar a opção / m no comando setx e executá-la em um prompt de comando elevado (administrador).
Exemplo: abra o prompt de comando como administrador e execute
Explicação: O comando acima anexará "C: \ Users \ User \ Libs" à variável de caminho já existente (variável de ambiente do sistema).
Sem o argumento / m , ele fará alterações ou criará apenas uma variável de caminho no nível do usuário.
No manual do usuário setx,
fonte