Board logo

标题: [文本处理] 如果在administrator的用户变量和系统变量添加变量和追加变量 [打印本页]

作者: yidamw    时间: 2021-10-28 09:07     标题: 如果在administrator的用户变量和系统变量添加变量和追加变量

用户变量   新增
变量名:INSUPATH
变量值:C:\DHCInsurance\DLL

追加
变量名是:path
.;%JAVA_HOME%\bin;   追加变量值:%INSUPATH%


环境变量:
变量名是:path
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\NetSarang\Xftp 6\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;;C:\Program Files (x86)\SinoVoice\jTTS 5.0.1 Pro\Bin;
  追加变量值:%INSUPATH%

麻烦各位大佬了
作者: Batcher    时间: 2021-10-28 09:50

回复 1# yidamw


系统环境变量保存在:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

当前用户的环境变量保存在:
HKEY_CURRENT_USER\Environment

批处理reg命令基础:添加、修改注册表
http://bbs.bathome.net/thread-3747-1-1.html

批处理添加、修改系统环境变量
http://bbs.bathome.net/thread-2052-1-1.html#pid11684
作者: 5i365    时间: 2021-10-28 11:35

回复 2# Batcher


    你好, 我的批处理代码中, 只要有wmic设置变量的代码, 就无法执行, 一打开就自动关了, 注释掉就没事, 但是都要关闭后再打开才能继续向下执行:
下面的代码是改的这个链接贴子中的代码http://www.bathome.net/thread-60488-1-1.html
感觉可能是变量没有即时生效的问题, 但是wmic无法执行, 怪了
  1. @echo off
  2. color 1f
  3. echo.
  4. echo GIT 版本:
  5. call git --version 2>nul
  6. if %errorlevel% == 0 (
  7.     echo.
  8.     echo GIT 已安装
  9.     echo ______________________________
  10. ) else (
  11.     echo.
  12.     echo GIT 未安装, 开始安装
  13.     echo ______________________________
  14.    
  15. Git-2.33.0.2-64-bit.exe /VERYSILENT
  16. cls
  17. echo.
  18. echo GIT 已安装
  19.     echo ______________________________
  20. )
  21. echo.
  22. echo NPM 版本:
  23. call npm --version 2>nul
  24. if %errorlevel% == 0 (
  25.     echo.
  26.     echo NPM 已安装, 继续执行
  27.     echo ______________________________
  28. ) else (
  29.     echo.
  30.     echo NPM 未安装, 开始安装
  31.     echo ______________________________
  32.    
  33. MsiExec.exe /i node-v13.14.0-x64.msi /qn
  34. REM wmic ENVIRONMENT where "name='path' and username='<SYSTEM>'" set VariableValue='%path%;C:\Program Files\nodejs\'
  35. cls
  36. echo.
  37. echo NPM 已安装, 继续执行
  38.     echo ______________________________
  39. )
  40. echo.
  41. echo Yarn 版本:
  42. call yarn --version 2>nul
  43. if %errorlevel% == 0 (
  44.     echo.
  45.     echo Yarn 已安装
  46.     echo _________________________________________________________
  47. ) else (
  48.     echo.
  49.     echo Yarn 未安装, 开始安装
  50.     echo _________________________________________________________
  51.    
  52.     npm install -g yarn --registry=https://registry.npm.taobao.org
  53.     echo.
  54.     echo 正在设置环境变量
  55.     echo _________________________________________________________
  56.     REM setx PATH "%PATH%;C:\Users\%username%\AppData\Local\Yarn\bin"
  57.     echo Yarn 已安装, 继续执行
  58.     REM wmic ENVIRONMENT where "name='path' and username='<SYSTEM>'" set VariableValue='%path%;C:\Users\%username%\AppData\Local\Yarn\bin'
  59.     echo _________________________________________________________
  60. )
  61. echo.
  62. echo Yarn 版本:
  63. call yarn --version 2>nul
  64. pause
复制代码

作者: Batcher    时间: 2021-10-28 11:53

回复 3# 5i365


试试这样:
先用 set 命令修改 path,这样可以对当前脚本环境生效。
再用 reg 命令修改注册表,这样可以对新的脚本环境生效。
作者: 5i365    时间: 2021-10-28 12:26

回复 4# Batcher


    感谢指点, 其实exe在静默安装过程中会设置变量的, 我添加设置变量是为了保险

现在问题, 还是没有解决, 只能关闭后,再次打开才行
作者: Batcher    时间: 2021-10-28 14:44

回复 5# 5i365


    exe在静默安装过程中设置的环境变量跟你用wmic设置的类似,都是对脚本环境不生效。所以才建议你用set命令。
作者: 5i365    时间: 2021-10-28 14:52

回复 6# Batcher


    试了, 不灵, 我感觉这个问题应该无解, 不然写这个代码的人, 不会放到两个批处理中, 我只是看它是两个批处理, 所以才想把它们合二为一的




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2