Bat之更改path环境变量
Bat 之更改 path 环境变量
:: 使⽤⽅法:
:: 运⾏ getSystemPath.bat ,会在本⽬录下⽣成 ⽂件
:: 修改 ⾥的内容为你想要的 path 环境变量
::
:: 右键管理员⽅式运⾏ setSystemPath.bat ,将设置环境变量到本机器
::
:: @author:kutsh
:: @date:2020年10⽉16⽇22:04:07
getSystemPath.bat
@echo off
::
:: 使⽤⽅法:
:: 运⾏ getSystemPath.bat ,会在本⽬录下⽣成 ⽂件
:: 修改 ⾥的内容为你想要的 path 环境变量
::
:: 右键管理员⽅式运⾏ setSystemPath.bat ,将设置环境变量到本机器
:: @filename:getSystemPath.bat
:: @author:kutsh
:: @date:2020年10⽉16⽇22:04:07
::
echo.
:: 按 ; 分开,写⼊临时⽂件
set EN_PATH_
set str=
:: 获取 path 环境变量设置,str 类似这样,str=AAA;BBB;CCC;DDD;EEE;FFF
:: ⽅法1获取的参数会有变化,解析了  %value% 这样的值。所以不可⽤
:: set str=%path%
:: ⽅法2 使⽤ reg 查询注册表
for /F "tokens=1,2,* " %%j in ('REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v path ^| findstr /i "Path"') do (  set str=%%l
)
:: str的副本
set remain=%str%
:: 为了创建⼀个空⽂件
::someIdontKonwnPut 2>nul >%EN_PATH_FILE%
type nul > %EN_PATH_FILE%
:loop
for /f "tokens=1* delims=;" %%a in ("%remain%") do (
::输出第⼀个分段(令牌)
echo %%a>>%EN_PATH_FILE%
:: 将截取剩下的部分赋给变量remain,其实这⾥可以使⽤延迟变量开关
set remain=%%b
)
::如果还有剩余,则继续分割
if defined remain goto :loop
echo ******wirte in file %EN_PATH_FILE% ok.******
echo on
setSystemPath.bat
@echo off
::
:: 使⽤⽅法:
:: 运⾏ getSystemPath.bat ,会在本⽬录下⽣成 ⽂件
:: 修改 ⾥的内容为你想要的 path 环境变量
::
:: 右键管理员⽅式运⾏ setSystemPath.bat ,将设置环境变量到本机器
:: @filename:setSystemPath.bat
:: @author:kutsh
:: @date:2020年10⽉16⽇22:04:07
::
:: 开启环境变量
setlocal enabledelayedexpansion
echo.
echo ******************start******************
echo.
set enbuf=%~dp0
set EN_PATH_FILE=!
:: 判断⽂件,不在就退出
::echo EN_PATH_FILE=%EN_PATH_FILE%
if not exist %EN_PATH_FILE% (
echo this is that the txt is't exist
goto :exitThisCmd
)
set bufString=
set bufpath=
for /f "delims=" %%a in (%EN_PATH_FILE%) do (
set bufpath=%%a
if defined bufpath (
if not "!bufpath:~-1!"==";" (set bufpath=!bufpath!;)
set bufString=!bufString!!bufpath!
)
)
:: 输出结果
::echo bufString=!bufString!
:: 更改注册表的路径
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment :: 更改注册表的 value
set evname=Path
:: 更改注册表的 data
set mysetpath=!bufString!
reg add "%regpath%" /v %evname% /t REG_EXPAND_SZ /d "%mysetpath%" /f
echo.
echo ***************************************************
echo ******                wirte                ******
echo ******                the file              ******
echo ****** %EN_PATH_FILE% ******
echo ******                  to                  ******
echo ******                regeit                ******
echo ******                  ok.                  ******
echo ***************************************************
echo.
goto exitOK
环境变量path误删有影响吗:exitThisCmd
echo.
echo ******waring : wirte the file not exist.******
:exitOK
echo.
pause
echo on

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。