找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 82664|回复: 27

[注册表类] 【已解决】win10系统通过注册表添加系统变量为什么不成功?

[复制链接]
发表于 2016-4-2 20:17:11 | 显示全部楼层 |阅读模式
本帖最后由 solan 于 2016-4-7 13:58 编辑

如题,我在win7 winxp里面都能用批处理添加系统变量,win10里面就不行,代码如下:
  1. @echo off
  2. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v "UGII_BASE_DIR" /t REG_SZ /d "%cd%\NX 10.0" /f
  3. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v "UGII_ROOT_DIR" /t REG_SZ /d "%cd%\NX 10.0\UGII" /f
复制代码
请教,在win10里面怎么写。

评分

参与人数 1PB -4 收起 理由
pcl_test -4 未按版规发帖

查看全部评分

 楼主| 发表于 2016-4-4 14:46:47 | 显示全部楼层
有哪位朋友安装win10的,帮我看看1楼的代码,到底是什么原因
 楼主| 发表于 2016-4-4 14:47:54 | 显示全部楼层
是不是win10权限的问题啊?
发表于 2016-4-4 19:15:09 | 显示全部楼层
执行后显示什么?没有写入注册表?在CMD窗口单条执行呢?
 楼主| 发表于 2016-4-4 23:26:18 | 显示全部楼层
回复 4# pcl_test

批处理执行时没什么反应,没什么错误提示,然后去 环境变量那儿一看还是老样子,没有写入注册表
在CMD窗口我没有试过
由于某种原因,我现在已经换回win7系统了,所以暂时无法测试。
发表于 2016-4-5 04:32:55 | 显示全部楼层
本帖最后由 codegay 于 2016-4-5 04:34 编辑

手动添加注册表,重启,搜索注册表,确认环境变量被添加到哪里了.

参考我的帖子,http://bbs.bathome.net/thread-32322-3-1.html
你需要确认win 10是不是也是同样情况.
以及是不是需要管理员权限执行.

发现我的系统是从
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
读取变量的。
所以添加到ControlSet001下无效。
 楼主| 发表于 2016-4-5 08:27:03 | 显示全部楼层
回复 6# codegay


    好的,谢谢,不过我现在换回win7了,要不安装个虚拟机试试,给我点时间
发表于 2016-4-5 08:45:08 | 显示全部楼层
回复 7# solan


   
好的.如能反馈测试结果就是贡献.
发表于 2016-4-6 15:41:31 | 显示全部楼层
回复 6# codegay


    正解,win10就是这样的情况。
发表于 2016-4-6 19:04:22 | 显示全部楼层
  1. wmic ENVIRONMENT create name="UGII_BASE_DIR",username="<system>",VariableValue="%cd%\NX 10.0"
  2. wmic ENVIRONMENT create name="UGII_ROOT_DIR",username="<system>",VariableValue="%cd%\NX 10.0\UGII"
复制代码
发表于 2016-4-6 19:06:16 | 显示全部楼层
本帖最后由 pcl_test 于 2016-4-6 19:07 编辑
  1. Windows Registry Editor Version 5.00
  2. ;cls&@echo off
  3. ;set "fd=%cd%"
  4. ;(echo;
  5. ;echo;"UGII_BASE_DIR"="%fd:\=\\%\\NX 10.0"
  6. ;echo;"UGII_ROOT_DIR"="%fd:\=\\%\\NX 10.0\\UGII")>>"%~f0"
  7. ;regedit /s "%~f0"
  8. ;echo;导入完成&ping -n 3 0 >nul&pause
  9. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]
复制代码
 楼主| 发表于 2016-4-6 19:26:49 | 显示全部楼层
回复 11# pcl_test
谢谢老大,我现在安装回win10测试一下
 楼主| 发表于 2016-4-7 13:48:50 | 显示全部楼层
回复 10# pcl_test


    用批处理在win10里测试,提示“错误:拒绝访问”
 楼主| 发表于 2016-4-7 13:52:10 | 显示全部楼层
回复 11# pcl_test


    此楼代码win10企业版测试通过,达到预期效果。
非常感谢,不过不懂代码的具体含义。
 楼主| 发表于 2016-7-20 11:50:25 | 显示全部楼层
本帖最后由 solan 于 2016-7-20 12:45 编辑

回复 11# pcl_test
版主,由于代码需要更新,现在问题又来了,是这样:举个例子,某个软件的根目录AA里面有好多文件和文件夹,其中有一个文件夹叫BB,BB里面其中有 Tool文件夹和 CC文件夹,
我想把BB和CC的路径写入环境变量,这个批处理怎么写?该批处理放到根目录AA或者Tool里面,要求执行结果一样,能在xp win7 和win10上运行。

我写了多个方案都不成功,特来求教,麻烦版主了,谢谢
下面是我写的测试代码
  1. @echo off
  2. set "Py=%~dp0"
  3. set "py=%py:~0,-6%"
  4. ::我这里判断批处理是否放在Tool里面,好像写得不对,不知道怎么改
  5. if exist "&py&\Tool" (goto Tool) else (
  6. if exist "%~dp0BB" (
  7. goto bb
  8. ) else (goto erro)
  9. )

  10. :Tool
  11. Windows Registry Editor Version 5.00
  12. ;cls&@echo off
  13. ;(echo;
  14. ;echo;"BASE_DIR"="%Py:\=\\%"
  15. ;echo;"ROOT_DIR"="%Py:\=\\%\\CC")>>"%~f0"
  16. ;regedit /s "%~f0"
  17. ;echo;
  18. echo . 导入成功!
  19. echo .
  20. echo .&ping -n 3 0 >nul&pause
  21. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]

  22. :bb
  23. Windows Registry Editor Version 5.00
  24. ;cls&@echo off
  25. ;set "P=%~dp0"
  26. ;(echo;
  27. ;echo;"BASE_DIR"="%P:\=\\%BB"
  28. ;echo;"ROOT_DIR"="%P:\=\\%BB\\CCI")>>"%~f0"
  29. ;regedit /s "%~f0"
  30. ;echo;
  31. echo . 导入成功
  32. echo .
  33. echo .&ping -n 3 0 >nul&pause
  34. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]

  35. :erro
  36. echo .
  37. echo .位置错误!!
  38. echo .
  39. echo .按任意键退出....&pause>nul&exit
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 00:14 , Processed in 0.023388 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表