Setx

**setx** 是一個微軟 Window 作業系統的一個管理工具 / 命令。setx 是英文 **S**et **X**，即用於設定環境變數，是 Windows 系統中運維需要的命令。

## 歷史

適用於：Windows Vista, Windows Server 2008, Windows Server 2012, Windows 8，Windows 10

setx 首次出現於 Windows Vista.

## 使用方法

在作業系統中都有環境變數的概念，表示作業系統中用來指定作業系統執行環境的一些參數。

該命令 setx 用於 不依賴指令碼和編程，直接建立或者修改 使用者或者系統的環境變數。並可用於檢索登錄檔項的值並將它們寫進文字檔案。

 

## 語法

語法 1:

```
   SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]
```

語法 2:

```
   SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]
```

語法 3:

```
   SETX [/S system [/U [domain\]user [/P [password]]]]
        /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]
```

描述:

```
   在用户或系统环境创建或修改环境变量。能基于参数、注册表项或文件输
   入设置变量。
```

## 參數列

```
   /S     system          指定要连接到的远程系统。
```

```
   /U     [domain\]user   指定应该在哪个用户上下文执行命令。
```

```
   /P     [password]      指定给定用户上下文的密码。如果省略则
                          提示输入。
```

```
   var                    指定要设置的环境变量。
```

```
   value                  指定分配给环境变量的值。
```

```
   /K     regpath         指定变量是基于注册表项的信息而设置的。
```

```
                          路径的格式应该是 hive\key\...\value。例如
                          HKEY_LOCAL_MACHINE\System\CurrentControlSet\
                          Control\TimeZoneInformation\StandardName。
```

```
   /F     file            指定要使用的文本文件的文件名。
```

```
   /A     x,y             指定绝对文件坐标(线 X，项目 Y)作为在此文件
                          里搜索的参数。
```

```
   /R     x,y string      指定有关“字符串”作为搜索参数的相对文件坐标。
```

```
   /M                     指定应该在系统 (HKEY_LOCAL_MACHINE) 环境中设
                          置此变量。在 HKEY_CURRENT_USER 环境下，默认
                          将设置此变量。
```

```
   /X                     用 x，y 坐标显示文件内容。
```

```
   /D     delimiters      指定其他限定符，如 "," 或 "\"。
                          内置分隔符是空格、制表符、回车和换行符。所有
                          ASCII 字符都可作为限定符。限定符的最大数量，
                          包括内置分隔符，是 15。
```

```
   /?                     显示此帮助消息。
```

## 注意

```
     1) SETX 在注册表中将变量写入主机环境。
     2) 在本地系统，用此工具创建或修改的变量将在以后的命令窗口可用，但
        在当前的 CMD.exe 命令窗口。
     3) 在远程系统，用此工具创建或修改的变量在下次登录会话可用。
     4) 有效的注册表项数据类型是 REG_DWORD，REG_EXPAND_SZ，REG_SZ
        和 REG_MULTI_SZ。
     5) 受支持的配置单元:  HKEY_LOCAL_MACHINE (HKLM)，
        HKEY_CURRENT_USER (HKCU)。
     6) 限定符区分大小写。
     7) REG_DWORD 的值是从注册表里以十进制格式提取出来的。
```

## 範例

```
   SETX MACHINE COMPAQ
   SETX MACHINE "COMPAQ COMPUTER" /M
   SETX MYPATH "%PATH%"
   SETX MYPATH ~PATH~
   SETX /S system /U user /P password  MACHINE COMPAQ
   SETX /S system /U user /P password MYPATH ^%PATH^%
   SETX TZONE /K HKEY_LOCAL_MACHINE\System\CurrentControlSet\
        Control\TimeZoneInformation\StandardName
   SETX BUILD /K "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
        NT\CurrentVersion\CurrentBuildNumber" /M
   SETX /S system /U user /P password TZONE /K HKEY_LOCAL_MACHINE\
        System\CurrentControlSet\Control\TimeZoneInformation\
        StandardName
   SETX /S system /U user /P password  BUILD /K
        "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\
        CurrentVersion\CurrentBuildNumber" /M
   SETX /F ipconfig.out /X
   SETX IPADDR /F ipconfig.out /A 5,11
   SETX OCTET1 /F ipconfig.out /A 5,3 /D "#$*."
   SETX IPGATEWAY /F ipconfig.out /R 0,7 Gateway
   SETX /S system /U user /P password  /F c:\ipconfig.out /X
```

## 參看

* MS-DOS 命令列表 #set : 設定環境變數（只在當前命令窗口）。
* setx：常見異常問題