首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

施用setx一次性设置系统环境变量

2013-09-11 
使用setx一次性设置系统环境变量Setx.exe??批处理文件:javaEnv.bat@echo off @setx JAVA_HOMES D:\Java -m

使用setx一次性设置系统环境变量

Setx.exe??

批处理文件:javaEnv.bat
@echo off
@setx JAVA_HOMES D:\Java -m

命令行下运行javaEnv.bat,即可以一次性设置系统环境变量

下面对改命令做详细介绍:

这个命令行工具提供了一种批量修改环境变量的方法,同时不需要使用任何编程方法或者是脚本。此外,除了可以获得变量和值之外还可以跟注册表的值挂上关系。在 2000中除了setx.exe之外,其他没有任何一种命令行工具可以直接设置系统变量值。只有通过控制面板和注册表编辑器才能够设置。如果有人说可以用 set命令的话, 实际上这个CMD的内部命令只能够设置当前控制台窗口的用户环境变量。 setx允许你通过Command Line Mode,Registry Mode,File Mode,这三种模式来设置环境变量。??

a. Command-Line??

setx variable value -m??

variable??
要设置的环境变量的名字。??

value??
要设置的值。??

-m??
设置计算机环境,默认设置是用户环境。??

b. Registry Mode??

setx variable -k hive\key\……\value -m??

variable??
要设置的环境变量的名字。??

-k??
指定变量设置会基于注册表中的信息。??

hive\key\……\value??
注册表路径,如:??
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName??

-m??
同命令行模式。??

c. File Mode??

setx variable -f filename -a x,y │ -r x,y "string" -d d -x -m??

-f filename??
指定使用的文件名。??

-a x,y??
指定要搜索的绝对坐标或者是偏移量。??

-r x,y "string"??
指定从"string"的相对坐标或者是偏移。??

-d d??
指定附加的分隔符,后一个d表示,可以是",", ""等等。系统有四个内建的分隔符是:space, tab,??

carriage return, linefeed。附加的可以是任意的ASCII字符。??

-x??
显示文件坐标,这个时候-a, -r, -d会变忽略。??

-m??
在同上。??

setx将变量写入到在注册表的主环境中去。用setx设置的变量将会在下一次启动的时候生效,这是2000的局限。当访问REG_MULTI_SZ时,只能访问到第一个项目。??
目前setx只可以支持HKCU和HKLM两个hives。用Setx增加的值不可以用setx去掉,可以在控制面板里面改,也可以在注册表里面改,这种时候也可以用set把它置空。??

但是还是来几个例子吧!??

a.Command Line??

Setx MACHINE COMPAQ??
在用户环境中设置MICHINE为COMPAQ。??

setx MYPATH %PATH%??
设置MYPATH的值为当前PATH变量的值。??

setx MYPATH ~PATH~??
设置MYPATH总是和PATH环境的值保持一致。??

b. Registry??

Setx TZONE -k??

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName??
设置TZONE的值为上面的键。比如:"Central Standard Time"??

Setx BUILD -k "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows??

NT\CurrentVersion\CurrentBuildNumber"??
设置BUILD的值为当前的Windows NT版本号,如:1314。??

c. File??
在进行这部分之前先运行ipconfig > ipconfig.out,弄一个ipconfig的文本出来。然后就可以进行操作了??


Setx var -f ipconfig.out -x??
这个命令会显示这个文件的内容的坐标。如:??

C:\>SETX VAR -f ipconfig.out -x??


(1,0 Windows) (1,1 2000) (1,2 IP) (1,3 Configuration)??

(3,0 Ethernet) (3,1 adapter) (3,2 Local) (3,3 Area) (3,4 Connection施用setx一次性设置系统环境变量??

(5,0 Connection-specific) (5,1 DNS) (5,2 Suffix) (5,3 .) (5,4? ?
(6,0 IP) (6,1 Address.) (6,2 .) (6,3 .) (6,4 .) (6,5 .) (6,6 .) (6,7 .) (6,8 .)??
(6,9 .) (6,10 .) (6,11 .) (6,12 .) (6,13??(6,14 192.168.1.1)??
(7,0 Subnet) (7,1 Mask) (7,2 .) (7,3 .) (7,4 .) (7,5 .) (7,6 .) (7,7 .) (7,8 .)??
(7,9 .) (7,10 .) (7,11 .) (7,12 .) (7,13??(7,14 255.255.255.0)??
(8,0 Default) (8,1 Gateway) (8,2 .) (8,3 .) (8,4 .) (8,5 .) (8,6 .) (8,7 .) (8,8??
.) (8,9 .) (8,10 .) (8,11? ?

setx ipaddr -f ipconfig.out -a 5,11??

这个命令会寻找绝对偏移为(5,11)的内容,然后设置ipaddr为这个值。如:??

C:\>setx ipaddr -f ipconfig.out -a 6,14??
Extracted value is: 192.168.1.1??

Setx ipgateway -f ipconfig.out -r 0,11 "Gateway"??
查找Gateway这个字符串偏移0,11的东东,然后写到ipgateway里面去。??

C:\>Setx ipgateway -f ipconfig.out -r 0,11 "Gateway"??
Extracted value is: 192.168.1.244??

以上所有的修改都会在重起以后看到,可以用set或者是控制面板中的System properties看。


我的异常网推荐解决方案:java环境变量设置,http://www.myexception.cn/java-other/172921.html

热点排行