setx
Cria ou modifica variáveis de ambiente no ambiente do usuário ou do sistema, sem a necessidade de programação ou script. O comando Setx também recupera os valores das chaves do Registro e os grava em arquivos de texto.
Observação
Esse comando fornece a única forma programática ou de linha de comando para definição de valores de ambiente do sistema de forma direta e permanente. As variáveis de ambiente do sistema podem ser configuradas manualmente por meio do Painel de Controle ou por meio de um editor do registro. O comando set, que é interno no interpretador de comandos (Cmd.exe), define variáveis de ambiente do usuário apenas para a janela do console atual.
Sintaxe
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable> <value> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable>] /k <path> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] /f <filename> {[<variable>] {/a <X>,<Y> | /r <X>,<Y> <String>} [/m] | /x} [/d <delimiters>]
Parâmetros
Parâmetro | Descrição |
---|---|
/s <computer> |
Especifica o nome ou endereço IP de um computador remoto. Não use barras invertidas. O valor padrão é o nome do computador local. |
/u [<domain>\]<user name> |
Executa o script com as credenciais da conta de usuário especificada. O valor padrão é as permissões do sistema. |
/p [<password> ] |
Especifica a senha da conta de usuário especificada no parâmetro /u. |
<variable> |
Especifica o nome da variável de ambiente que você deseja definir. |
<value> |
Especifica o valor para o qual você deseja definir a variável de ambiente. |
/k <path> |
Especifica que a variável é definida com base nas informações de uma chave do registro. O caminho usa a seguinte sintaxe: \\<HIVE>\<KEY>\...\<Value> . Por exemplo, você pode especificar o seguinte caminho: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName |
/f <filename> |
Especifica o arquivo que você deseja usar. |
/a <X>,<Y> |
Especifica coordenadas absolutas e deslocamento como parâmetros de pesquisa. |
/r <X>,<Y> <String> |
Especifica coordenadas relativas e deslocamento de String como parâmetros de pesquisa. |
/m | Especifica a definição da variável no ambiente do sistema. A configuração padrão é o ambiente local. |
/x | Exibe coordenadas de arquivo, ignorando as opções de linha de comando /a, /r e /d. |
/d <delimiters> |
Especifica delimitadores como , ou \ a serem usados além dos quatro delimitadores internos SPACE, TAB, ENTER e LINEFEED. Delimitadores válidos incluem qualquer caractere ASCII. O número máximo de delimitadores é 15, incluindo delimitadores internos. |
/? | Exibe a ajuda no prompt de comando. |
Comentários
Esse comando é semelhante ao utilitário UNIX SETENV.
Você pode usar esse comando a fim de definir valores para variáveis de ambiente do usuário e do sistema de uma das três fontes (modos): Modo de Linha de Comando, Modo de Registro ou Modo de Arquivo.
Esse comando grava variáveis no ambiente mestre no registro. Variáveis definidas com variáveis setx ficam disponíveis apenas em janelas de comando futuras, não na janela de comando atual.
HKEY_CURRENT_USER e HKEY_LOCAL_MACHINE são os únicos hives com suporte. REG_DWORD, REG_EXPAND_SZ, REG_SZ e REG_MULTI_SZ são os tipos de dados RegKey válidos.
Se você obtiver acesso a valores REG_MULTI_SZ no registro, somente o primeiro item será extraído e usado.
Você não pode usar esse comando para remover valores adicionados aos ambientes locais ou do sistema. Você pode usar esse comando com um nome de variável e sem valor para remover um valor correspondente do ambiente local.
Os valores do registro REG_DWORD são extraídos e usados no modo hexadecimal.
O modo de arquivo dá suporte apenas à análise de arquivos de texto CRLF (retorno de carro e alimentação de linha).
A execução desse comando em uma variável existente remove todas as referências de variáveis e usa valores expandidos.
Por exemplo, se a variável %PATH% tiver uma referência a %JAVADIR%, e %PATH% for manipulada usando setx, %JAVADIR% será expandida e seu valor será atribuído diretamente à variável de destino %PATH%. Isso significa que as atualizações futuras para %JAVADIR% não serão refletidas na variável %PATH%.
Lembre-se de que há um limite de 1024 caracteres na atribuição de conteúdo a uma variável usando setx.
Isso significa que o conteúdo será cortado se você ultrapassar 1024 caracteres e que o texto cortado é o que é aplicado à variável de destino. Se esse texto cortado for aplicado a uma variável existente, isso poderá resultar na perda de dados anteriormente mantidos pela variável de destino.
Exemplos
Para definir a variável de ambiente MACHINE no ambiente local com o valor Brand1, digite:
setx MACHINE Brand1
Para definir a variável de ambiente MACHINE no ambiente do sistema com o valor Brand1 Computer, digite:
setx MACHINE Brand1 Computer /m
Para definir a variável de ambiente MYPATH no ambiente local e usar o caminho de pesquisa definido na variável de ambiente PATH, digite:
setx MYPATH %PATH%
Para definir a variável de ambiente MYPATH no ambiente local e usar o caminho de pesquisa definido na variável de ambiente PATH depois de substituir ~ por %, digite:
setx MYPATH ~PATH~
Para definir a variável de ambiente MACHINE no ambiente local como Brand1 em um computador remoto chamado computer1, digite:
setx /s computer1 /u maindom\hiropln /p p@ssW23 MACHINE Brand1
Para definir a variável de ambiente MYPATH no ambiente local e usar o caminho de pesquisa definido na variável de ambiente PATH em um computador remoto chamado computer1, digite:
setx /s computer1 /u maindom\hiropln /p p@ssW23 MYPATH %PATH%
Para definir a variável de ambiente TZONE no ambiente local com o valor encontrado na chave do Registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName, digite:
setx TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName
Para definir a variável de ambiente TZONE no ambiente local de um computador remoto chamado computer1 com o valor encontrado na chave do registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName, digite:
setx /s computer1 /u maindom\hiropln /p p@ssW23 TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName
Para definir a variável de ambiente BUILD no ambiente do sistema com o valor encontrado na chave do registro HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber, digite:
setx BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber /m
Para definir a variável de ambiente BUILD no ambiente do sistema de um computador remoto chamado Computer1 com o valor encontrado na chave do Registro HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber, digite:
setx /s computer1 /u maindom\hiropln /p p@ssW23 BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber /m
Para exibir o conteúdo de um arquivo chamado Ipconfig.out, juntamente com as coordenadas correspondentes do conteúdo, digite:
setx /f ipconfig.out /x
Para definir a variável de ambiente IPADDR no ambiente local com o valor encontrado na coordenada 5,11 no arquivo Ipconfig.out, digite:
setx IPADDR /f ipconfig.out /a 5,11
Para definir a variável de ambiente OCTET1 no ambiente local com o valor encontrado na coordenada 5,3 no arquivo Ipconfig.out com delimitadores #$*., digite:
setx OCTET1 /f ipconfig.out /a 5,3 /d #$*.
Para definir a variável de ambiente IPGATEWAY no ambiente local com o valor encontrado na coordenada 0,7 em relação à coordenada do Gateway no arquivo Ipconfig.out, digite:
setx IPGATEWAY /f ipconfig.out /r 0,7 Gateway
Para exibir o conteúdo do arquivo Ipconfig.out, juntamente com as coordenadas correspondentes do conteúdo, em um computador chamado computer1, digite:
setx /s computer1 /u maindom\hiropln /p p@ssW23 /f ipconfig.out /x