在计算机系统中不同的软件环境变量,系统环境变量

  • Post author:
  • Post category:其他


setx.exe不是系统默认自带的命令,但可以从微软的网站(2K,XP)上下载到,是官方的咚咚,所以可以放心使用。这里是我从2K里的安装文件中抽取出来的exe文件,不想安装又信得过我的话可以下载。

以下是它的用法,转载的别人的:

Setx

在本地或系统环境中设置环境变量,无需编写程序或制作脚本。Setx 还检索注册表项并将其写入到文本文件。

语法

setx [/s Computer [/u [Domain\]User [/p [Password]]]] Variable Value [/m]

setx [/s Computer [/u [Domain\]User [/p [Password]]]] [Variable] /k Path [/m]

setx [/s Computer [/u [Domain\]User [/p [Password]]]] /f FileName {[Variable] {/a X,y | /r X,y “Stri

ng”} [/m] | /x} [/d Delimiters]

参数

/s Computer

指定远程计算机名称或 IP 地址(不能使用反斜杠)。该默认值是本地计算机。此参数适用于在命令中指定的所有

文件和文件夹。

/u [Domain\]User

使用特定用户帐户的权限运行脚本。该默认值是系统权限。

/p [Password]

指出 /u 参数中指定的用户帐户的密码。

Variable

指定要设置的环境变量的名称。

Value

指定要将环境变量设置到的值。

/k Path

指定根据来自注册表项的信息设置变量。指定 Path,格式为 \HIVE\KEY\…\Value(例如,HKEY_LOCAL_MACHINE\

System\CurrentControlSet\Control\TimeZoneInformation\StandardName)。

/f FileName

指定要使用的文件。

/a X,y

指定绝对坐标和偏移量作为搜索参数。

/r X,y “String”

指定来自 String 的相对坐标和偏移量作为搜索参数。

/m

指定设置系统环境中的 Variable。默认值是本地环境。

/x

显示文件坐标。忽略 /a、/r 和 /d 命令行选项。

/d Delimiters

指定附加的分隔符,例如,”,” 或 “\”。四个内置的分隔符为空格、跳格键、回车和换行符。可使用任何 ASCII 字

符作为附加的分隔符。分隔符的最大值为 15,包括四个内置的分隔符。

/?

在命令提示符下显示帮助。

注释

使用 /s、/u 和 /p 命令行选项

只有在使用 /s 命令行选项时才可使用 /u 和 /p 选项。必须同时使用 /p 和 /u 才能提供用户密码。

Setx 提供仅用于命令行或编程的方式直接且永久地设置系统环境值。系统环境变量可通过“控制面板”或通过注册

表编辑器 (Regedit.exe) 手动配置。Set 命令为命令解释程序(即,Cmd.exe)的内部命令,仅为当前控制台窗口

设置用户环境变量。

可使用 setx 为来自以下三种来源之一的用户和系统环境变量设置值:命令行模式、注册表模式或文件模式。

Setx 类似于 UNIX 实用程序 SETENV。

Setx 将变量写入到注册表中的主环境。用 setx 设置的变量仅在未来的命令窗口中可用,而不是在当前的命令窗口

只支持 HKEY_CURRENT_USER 和 HKEY_LOCAL_MACHINE 配置单元。REG_DWORD、REG_EXPAND_SZ、REG_SZ AND REG_MU

LTI_SZ 是有效的 RegKey 数据类型。

当在注册表中获得对 REG_MULTI_SZ 值的访问权时,只有第一项被展开和使用。

无法使用 setx 删除添加到本地或系统环境中的值。可以使用带有变量名但不带值的 set 来删除本地环境中相应的

值。

REG_DWORD 注册表值将以十六进制的模式展开并使用。

文件模式仅支持对 CR-LF 文本文件的解析。

示例

要在本地环境中设置 MACHINE 环境变量为 Brand1,请键入:

setx MACHINE brand1

要在系统环境中设置 MACHINE 环境变量为 Brand1 Computer,请键入:

setx MACHINE “brand1 computer” /m

要在本地环境中设置 MYPATH 环境变量以使用在 PATH 环境变量中定义的搜索路径,请键入:

setx MYPATH %PATH%

要在本地环境中设置 MYPATH 环境变量以便在将 ~ 替换为 % 后使用在 PATH 环境变量中定义的搜索路径,请键入

setx MYPATH ~PATH~

要在一台名为 Computer1 的计算机上的本地环境中设置 MACHINE 环境变量为 BRAND1,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 MACHINE BRAND1

要在一台名为 Computer1 的计算机上的本地环境中设置 MYPATH 环境变量以便使用在 PATH 环境变量中定义的搜索

路径,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 MYPATH %PATH%

要在本地环境中将 TZONE 环境变量设置为在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZone

Information\StandardName 注册表项中找到的值,请键入:

setx TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

要在系统环境中将 BUILD 环境变量设置为在 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersi

on\CurrentBuildNumber 注册表项中找到的值,请键入:

setx BUILD /k “HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber” /m

要在一台名为 Computer1 的计算机上的本地环境中将 TZONE 环境变量设置为在 HKEY_LOCAL_MACHINE\ System\Cu

rrentControlSet\Control\TimeZoneInformation\StandardName 注册表项中找到的值,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 TZONE /k HKEY_LOCAL_MACHINE\ System\CurrentControlSe

t\Control\TimeZoneInformation\StandardName

要在一台名为 Computer1 的计算机上的系统环境中将 BUILD 环境变量设置为在 HKEY_LOCAL_MACHINE\Software\M

icrosoft\WindowsNT\CurrentVersion\CurrentBuildNumber 注册表项中找到的值,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 BUILD /k “HKEY_LOCAL_MACHINE\Software\Microsoft\Wind

ows NT\CurrentVersion\CurrentBuildNumber” /m

要显示文件 ipconfig.out 的内容及其相应的坐标,请键入:

setx /f ipconfig.out /x

要在本地环境中将 IPADDR 环境变量设置为在文件 ipconfig.out 中 5,11 坐标处找到的值,请键入:

setx IPADDR /f ipconfig.out /a 5,11

要在本地环境中将 OCTET1 环境变量设置为在带有分隔符“#$*.”的文件 ipconfig.out 中 5,3 坐标处找到的值,

请键入:

setx OCTET1 /f ipconfig.out /a 5,3 /d “#$*.”

要在本地环境中将 IPGATEWAY 环境变量设置为在文件 ipconfig.out 中相对于“Gateway”坐标为 0,7 的坐标处找

到的值,请键入:

setx IPGATEWAY /f ipconfig.out /r 0,7 Gateway

要显示一台名为 Computer1 的计算机上的文件 ipconfig.out 的内容及其相应的坐标,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 /f ipconfig.out /x

介绍2:

这个工具已经强大到你可以指定存在于一个文本文件内的(x,y)座标来直接取文本值并设置到环境变量内,并永久生效。

(备注: 下面 SETX 工具的使用说明 CODE:  [Copy to clipboard]

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

看到很多初学者反复问这个问题,写了一个很简单的一个脚本,用于自动设置环境变量。把代码拷贝,另存为javaEnv.bat。安装完Java 2 SDK之后,开一个命令行窗口,输入javaEnv java2SDKDir(java2SDKDir是你的java的安装目录,不带路径最后的\。如果安装路径中有空格,请用javaEnv “java2SDKDir”格式)并运行。(注:一定要在javaEnv后边加上你的sdk的目录,setx的问题可以看这里)

@echo 你提供的jdk安装目录为:%1

@echo off

IF EXIST %1\bin\java.exe (

rem 如输入正确的 Java2SDK 安装目录,开始设置环境变量

@setx JAVA_HOME %1

@setx path %JAVA_HOME%\bin;%path%

@setx classpath %classpath%;.

@setx classpath %classpath%;%JAVA_HOME%\lib\tools.jar

@setx classpath %classpath%;%JAVA_HOME%\lib\dt.jar

@setx classpath %classpath%;%JAVA_HOME%\jre\lib\rt.jar

@echo on

@echo Java 2 SDK 环境参数设置完毕,正常退出。

) ELSE (

IF %1==”” (

rem 如没有提供安装目录,提示之后退出

@echo on

@echo 没有提供 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。

) ELSE (

rem 如果提供非空的安装目录但没有bin\java.exe,则指定的目录为错误的目录

@echo on

@echo 非法的 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。

)

)

请打开另外一个窗口测试

运行

path

set classpath

也可参考 这里进行设置。