[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 批处理修改系统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: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
复制代码

TOP

回复 2# pcl_test


    我尝试修改成:可以自定义拖入文件来添加环境变量,但不能实现。

求可以实现的代码,谢谢大神·

TOP

回复 3# shimuren

对此不感冒

TOP

%fd% 改成 %~dp1

TOP

回复 5# CrLf


    为什么用管理员权限无法拖入文件呢

TOP

回复 6# shimuren


    就是这样,安全机制使然,没辙。除非你的 explorer.exe 也是以管理员身份运行的

TOP

回复 7# CrLf


    可以设置成手动输入吗?

TOP

回复 8# shimuren


    那就把 2 楼代码中的 set "fd=F:\phpStudy\MySQL\bin" 改成 set /p "fd=请输入路径"

TOP

返回列表