Board logo

标题: [注册表类] 批处理修改系统Path环境变量细节问题 [打印本页]

作者: shimuren    时间: 2015-10-24 09:11     标题: 批处理修改系统Path环境变量细节问题

  1. @echo off
  2.   @set Path_=F:\phpStudy\MySQL\bin
  3.   for,/f,"skip=4 tokens=1,2,*",%%a,in,('reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path'),do,(
  4.   @set PathAll_=%%c
  5.   )
  6.   echo %PathAll_%|find /i "%Path_%" && set IsNull=true|| set IsNull=false
  7.   if not %IsNull%==true (
  8.      reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "%PathAll_%;%Path_%" /f
  9.   )
  10. pause
复制代码
上述代码在添加环境变量时候:直接删除原有数据后再添加

需求:
修改成,直接在原有数据前添加新变量。

作者: pcl_test    时间: 2015-10-24 13:37

本帖最后由 pcl_test 于 2015-10-24 13:45 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "tmp=%path%"
  4. set "fd=F:\phpStudy\MySQL\bin"
  5. set "re=HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment"
  6. set "tmp=!tmp:C:\Windows=%%SystemRoot%%!"
  7. echo "%path%"|find /i "%fd%"||(
  8.     reg add "%re%" /v Path /t REG_EXPAND_SZ /d "%tmp%;%fd%" /f
  9.     rem wmic ENVIRONMENT where "Name='path' and UserName='<system>'" set VariableValue="%tmp%;%fd%"
  10. )
  11. 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