批处理操作注册表设置系统环境变量
在软件运行过程中,可能需要配置计算机的环境变量,在这里分为两种情况:
一:增加或修改环境变量只在当前软件环境中使用
如我们设置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
以上代码出处:http://hi.baidu.com/mqchange/item/7dbea91d638ff72cf7625c04
实例二:先判断环境变量path是否已经存在指定路径,如果不存在则添加该环境变量。
列出所有环境变量
@echo off&setlocal EnableDelayedExpansion set Path_=D:\Program Files set envName=OS set envNameIsNull=false for /f "skip=2 tokens=1,2,*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment"') do ( echo %%~a|find /i "%envName%" && set envNameIsNull=true|| set envNameIsNull=false echo envNameIsNull=!envNameIsNull! if !envNameIsNull!==true goto chkPath ) :chkPath rem 根据是否存在环境变量,决定是查找、添加、删除等操作 echo envNameIsNull=%envNameIsNull% goto :eof
实例三:查找环境变量path的值,是否包含指定路径
@echo off set Path_=D:\Program Files for /f "skip=2 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
以上代码出处:http://www.newxing.com/Tech/Soft/system/Bat_450.html
对于实例一和实例二是从简单到复杂的过程,主要是拍有些人对代码的理解程度不同。
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/3699579.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2014-04-29 16:48 jack_Meng 阅读(41312) 评论(2) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义