标题: [注册表类] 批处理修改系统Path环境变量细节问题 [打印本页]
作者: shimuren 时间: 2015-10-24 09:11 标题: 批处理修改系统Path环境变量细节问题
- @echo off
- @set Path_=F:\phpStudy\MySQL\bin
- 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
复制代码
上述代码在添加环境变量时候:直接删除原有数据后再添加
需求:
修改成,直接在原有数据前添加新变量。
作者: pcl_test 时间: 2015-10-24 13:37
本帖最后由 pcl_test 于 2015-10-24 13:45 编辑
- @echo off
- setlocal enabledelayedexpansion
- set "tmp=%path%"
- set "fd=F:\phpStudy\MySQL\bin"
- set "re=HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment"
- set "tmp=!tmp:C:\Windows=%%SystemRoot%%!"
- echo "%path%"|find /i "%fd%"||(
- reg add "%re%" /v Path /t REG_EXPAND_SZ /d "%tmp%;%fd%" /f
- rem wmic ENVIRONMENT where "Name='path' and UserName='<system>'" set VariableValue="%tmp%;%fd%"
- )
- pause
复制代码
作者: shimuren 时间: 2015-10-24 19:54
回复 2# pcl_test
我尝试修改成:可以自定义拖入文件来添加环境变量,但不能实现。
求可以实现的代码,谢谢大神·
作者: pcl_test 时间: 2015-10-24 20:25
回复 3# shimuren
对此不感冒
作者: CrLf 时间: 2015-10-24 20:48
%fd% 改成 %~dp1
作者: shimuren 时间: 2015-10-24 21:00
回复 5# CrLf
为什么用管理员权限无法拖入文件呢
作者: CrLf 时间: 2015-10-24 21:12
回复 6# shimuren
就是这样,安全机制使然,没辙。除非你的 explorer.exe 也是以管理员身份运行的
作者: shimuren 时间: 2015-10-24 21:46
回复 7# CrLf
可以设置成手动输入吗?
作者: CrLf 时间: 2015-10-24 22:20
回复 8# shimuren
那就把 2 楼代码中的 set "fd=F:\phpStudy\MySQL\bin" 改成 set /p "fd=请输入路径"
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |