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

[注册表类] 批处理怎么在PATH变量中添加2个带有环境变量的地址

[复制链接]
发表于 2022-8-18 16:16:34 | 显示全部楼层 |阅读模式
  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. )
复制代码
 楼主| 发表于 2022-8-18 16:18:52 | 显示全部楼层
回复 1# xin_chen


    大佬们,求助一下,为什么代码中的CSP_HOME可以设置,但是path_tools和path_bin却设置不了
发表于 2022-8-18 16:31:33 | 显示全部楼层
把如下指令以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
复制代码
 楼主| 发表于 2022-8-18 16:48:09 | 显示全部楼层
回复 3# hfxiang


    没有什么变化
发表于 2022-8-19 09:27:56 | 显示全部楼层
  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%分隔符是;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 18:13 , Processed in 0.017188 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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