Board logo

标题: [注册表类] 批处理怎么在PATH变量中添加2个带有环境变量的地址 [打印本页]

作者: xin_chen    时间: 2022-8-18 16:16     标题: 批处理怎么在PATH变量中添加2个带有环境变量的地址

  1. ::将路径存到CSP_HOME
  2. if not  "%OS%"=="Windows_NT" exit
  3. title WindosActive
  4. cd /D %~dp0
  5. cd ..
  6. set CSP_HOME=%cd%
  7. set remain=%path%
  8. set findedtools=false
  9. set findedbin=false
  10. ::创建CSP_HOME环境变量
  11. set path_tools=%CSP_HOME%\tools
  12. set path_bin=%CSP_HOME%\bin
  13. setx /m CSP_HOME "%CSP_HOME%"
  14. ::查找环境变量中PATH的值是否已经设置,如果没有设置才设置、
  15. :search1
  16. for /f "tokens=1,2* delims= " %%a in ("%remain%") do (
  17. if "%path_tools%"=="%%a" (
  18. set findedtools=true
  19. )
  20. if "%path_bin%"=="%%a" (
  21. set findedbin=true
  22. )
  23. set remain=%%b
  24. )
  25. if defined remain
  26. goto  :search1
  27. if "%findedtools%"=="false" (
  28. if "%findedbin%"=="false" (
  29. setx /m PATH "%path%;%path_tools%;%path_bin%"
  30. ) else (
  31. setx /m PATH "%path%;%path_tools%"
  32. )
  33. )
  34. if "%findedbin%"=="true" (
  35. if "%findedtools%"=="false"(
  36. setx /m PATH "%path%;%path_bin%"
  37. )
  38. )
复制代码

作者: xin_chen    时间: 2022-8-18 16:18

回复 1# xin_chen


    大佬们,求助一下,为什么代码中的CSP_HOME可以设置,但是path_tools和path_bin却设置不了
作者: hfxiang    时间: 2022-8-18 16:31

把如下指令以ANSI编码保存为bat文件,然后运行,看看前后什么变化
  1. @set path
  2. @echo;
  3. @echo;%path%|find.exe /i "%~dp0;">nul 2>&1 || path %~dp0;%path%
  4. @echo;
  5. @set path
复制代码

作者: xin_chen    时间: 2022-8-18 16:48

回复 3# hfxiang


    没有什么变化
作者: flashercs    时间: 2022-8-19 09:27

  1. ::查找环境变量中PATH的值是否已经设置,如果没有设置才设置、
  2. :search1
  3. for /f "tokens=1,2* delims=;" %%a in ("%remain%") do (
  4. if "%path_tools%"=="%%a" (
  5. set findedtools=true
  6. )
  7. if "%path_bin%"=="%%a" (
  8. set findedbin=true
  9. )
  10. set remain=%%b
  11. )
  12. if defined remain
  13. goto  :search1
复制代码
%path%分隔符是;




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