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