setx 简介
这个命令行工具提供了一种批量修改环境变量的方法,同时不需要使用任何编程方法或者是脚本。此外,除了可以获得变量和值之外还可以跟注册表的值挂上关系。在2000中除了setx.exe之外,其他没有任何一种命令行工具可以直接设置系统变量值。只有通过控制面板和注册表编辑器才能够设置。如果有人说可以用set命令的话, 实际上这个CMD的内部命令只能够设置当前控制台窗口的用户环境变量。 setx允许你通过Command Line Mode,Registry Mode,File Mode,这三种模式来设置环境变量。
在软件运行过程中,可能需要配置计算机的环境变量,在这里分为两种情况:一:增加或修改环境变量只在当前软件环境中使用
如我们设置Java的环境变量:
set
CLASSPATH=%CLASSPATH%C:\LS\JAVA.JAR
保持原有的不变
自己加上要加的jar包,用分号隔开,当然你也可以写到前面,如:set
CLASSPATH=D:/My_Path%CLASSPATH%
set
JAVA_HOME=
这里的路径自己写吧
不过这样写只对你打开的这个dos窗口有效,也就是你只有在这个窗口用java等命令,才会找到你才设的变量JAVA_HOME等
如果想看看是否设置成功可以用:echo
%JAVA_HOME%
常用此方法配置当前软件的运行环境,如在PL/SQL的启动时,使用批处理(bat)来启动他并配置Oracle的变量信息,网上这种代码很多就不贴出来了,需要的自己去搜索。
二:通关注册表永久性的保存设置或增加的环境变量
以下是我从网上找的代码,很简单,如果你看不懂的,再给我留言吧:
实例一:批处理设置系统环境变量
::添加环境变量JAVA_HOME
@echo
off
echo
添加java环境变量
set
regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Environment
set
evname=JAVA_HOME
set
javapath=c:\java\jdk
reg
add
"%regpath%"
/v
%evname%
/d
%javapath%
/f
pause>nul
::删除环境变量JAVA_HOME
@echo
off
echo
删除java环境变量
set
regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Environment
set
evname=JAVA_HOME
reg
delete
"%regpath%"
/v
"%evname%"
/f
pause>nul
实例二:先判断该环境变量是否已经存在,如果不存在则添加该环境变量。
@echo
off
@set
Path_=D:\Program
Files
for,/f,"skip=4
tokens=1,2,*",%%a,in,('reg
query
"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session
Manager\Environment"
/v
Path'),do,(
@set
PathAll_=%%c
)
echo
%PathAll_%|find
/i
"%Path_%"
&&
set
IsNull=true||
set
IsNull=false
if
not
%IsNull%==true
(
reg
add
"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session
Manager\Environment"
/v
Path
/t
REG_EXPAND_SZ
/d
"%PathAll_%%Path_%"
/f
)
pause
对于实例一和实例二是从简单到复杂的过程,主要是拍有些人对代码的理解程度不同。
1. .bat文件中获取bat文件所在目录的参数为 %~dp0 %~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录 cd是转到这个目录,不过我觉得cd /d %~dp0还好些 选项语法: ~0 -删除任何引号("),扩充%0 %~f0 -将%0扩充到一个完全合格的路径名(“f”是file,即文件) %~d0 -仅将%0扩充到一个驱动器号 %~p0 -仅将%0扩充到一个路径 %~n0 -仅将%0扩充到一个文件名(“n”是name文件名) %~x0 -仅将%0扩充到一个文件扩展名 %~s0 -扩充的路径只含有短名(“s”为Short,短的) %~a0 -将%0扩充到文件的文件属性(“a”为attribute,即属性) %~t0 -将%0扩充到文件的日期/时间(“t”time) %~z0 -将%0扩充到文件的大小(Size大小) %~$PATH:0 -查找列在路径环境变量的目录,并将%0扩充 到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩充到 空字符串 可以组合修饰符来得到多重结果: %~dp0 -仅将%0扩充到一个驱动器号和路径 %~nx0 -仅将%0扩充到一个文件名和扩展名 %~fs0 -仅将%0扩充到一个带有短名的完整路径名 %~dp$PATH:0 -查找列在路径环境变量的目录,并将%I扩充 到找到的第一个驱动器号和路径。 %~ftza0 -将%0扩充到类似输出线路的DIR %0为当前批处理文件 如果0换成1为第一个文件,2为第2个 **************************************************** %0代指批处理文件自身 %~d0是指批处理所在的盘符 %~dp0是盘符加路径 cd %~dp0就是进入批处理所在目录 2.添加永久环境变量 用reg add 向HKLM\system\controlset001\control\session manager\environment添加变量即可 如:添加添加值为hedalixin变量NAME reg add "HKLM\system\controlset\control\session manager\environment" /v NAME /t REG_SZ /d hedalixin欢迎分享,转载请注明来源:内存溢出
评论列表(0条)