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

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

本帖最后由 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里面怎么写。
1

评分人数

回复 11# pcl_test


    版主大大   

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /f /v "%cd%\ra2.exe" /t REG_SZ /d "~ RUNASADMIN 16BITCOLOR WINXPSP2"

这样一段 用你发的这个代码 怎么写呢?

TOP

哦,我会修改了,谢谢版主,辛苦啦,太爱你了

TOP

在win10测试:
放在根目录运行(管理员),达到预期效果
放在tool目录运行(管理员),会多一个斜杠,即 F:\NX10.0.3MP4_Lite_v4.3\NX 10.0\   后面多了斜杠

TOP

回复 23# solan


已改

TOP

其他的文件夹是固定的
1

评分人数

    • pcl_test: 未按版规发帖,挤牙膏呀PB -30

TOP

哦,我忘了说,那个AA文件夹是不固定的,因为在安装的时候用户会修改的

TOP

本帖最后由 pcl_test 于 2016-7-20 12:58 编辑

回复 20# solan

  1. @echo off
  2. set "fd=%~dp0"
  3. for /f "delims=" %%a in ("%fd:~,-1%") do set "fdn=%%~nxa"&set "fd=%%~dpa%"
  4. if exist "%~dp0BB\" (
  5.     set "BASE_DIR=%~dp0BB"
  6.     set "ROOT_DIR=%~dp0BB\CC"
  7.     set "UGII_BASE_DIR=%~dp0BB"
  8.     set "UGII_ROOT_DIR=%~dp0BB\CCI"
  9. ) else if "%fdn%" equ "Tool" (
  10.     set "BASE_DIR=%fd%"
  11.     set "ROOT_DIR=%fd%CC"
  12.     set "UGII_BASE_DIR=%fd%"
  13.     set "UGII_ROOT_DIR=%fd%CCI"
  14. ) else echo;不在指定目录下&&ping -n 3 0 >nul&exit
  15. (
  16.     echo;Windows Registry Editor Version 5.00
  17.     echo;
  18.     echo;[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]
  19.     echo;"BASE_DIR"="%BASE_DIR:\=\\%"
  20.     echo;"ROOT_DIR"="%ROOT_DIR:\=\\%"
  21.     echo;"UGII_BASE_DIR"="%UGII_BASE_DIR:\=\\%"
  22.     echo;"UGII_ROOT_DIR"="%UGII_ROOT_DIR:\=\\%"
  23. )>$tmp.reg
  24. regedit /s $tmp.reg
  25. echo;导入完成&ping -n 3 0 >nul
  26. del $tmp.reg /q
复制代码

TOP

大热天的,麻烦版主了

TOP

好的
要求在AA运行提示导入成功,并能加入环境变量BASE_DIR=BB的路径
                                                               ROOT_DIR=CC的路径
在tool里面运行也提示导入成功,也加入上面的变量
如果该批处理没放到这两个文件夹里面(放到其他地方),就提示位置错误

TOP

回复 18# solan


    不是说你代码运行结果,是说你要实现咋样的效果?你代码没有任何有助于理解问题的作用

TOP

本帖最后由 solan 于 2016-7-20 12:35 编辑

在AA里面运行就提示erro的信息,即提示位置错误,在也没加入变量
在tool里面运行提示导入成功,但是去环境变量那儿看看,也没加进去
谢谢,版主

TOP

回复 15# solan

没用的代码不要贴出来,只会误导问题,直接说效果,在AA运行,注册表哪里添加了什么,在Tool运行,注册表哪里添加了什么

TOP

这个批处理如果按各自的位置写,而且没有一些判断的代码,就能成功

TOP

本帖最后由 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
复制代码

TOP

返回列表