zoukankan      html  css  js  c++  java
  • Bat 之 更改 path 环境变量

    Bat 之 更改 path 环境变量

    :: 使用方法:
    :: 运行 getSystemPath.bat ,会在本目录下生成 istempPath.txt 文件
    :: 修改 istempPath.txt 里的内容为你想要的 path 环境变量
    ::
    :: 右键管理员方式运行 setSystemPath.bat ,将设置环境变量 到本机器
    ::
    :: @author:kutsh
    :: @date:2020年10月16日22:04:07

    getSystemPath.bat

    @echo off
    :: 
    :: 使用方法:
    :: 运行 getSystemPath.bat ,会在本目录下生成 istempPath.txt 文件
    :: 修改 istempPath.txt 里的内容为你想要的 path 环境变量
    ::
    :: 右键管理员方式运行 setSystemPath.bat ,将设置环境变量 到本机器
    :: @filename:getSystemPath.bat
    :: @author:kutsh
    :: @date:2020年10月16日22:04:07
    ::
    
    echo.
    :: 按 ; 分开,写入 临时文件 istempPath.txt
    set EN_PATH_FILE=istempPath.txt
    
    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_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment" /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 ,会在本目录下生成 istempPath.txt 文件
    :: 修改 istempPath.txt 里的内容为你想要的 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=!enbuf!istempPath.txt
    
    :: 判断文件,不在就退出
    ::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_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment
    :: 更改 注册表的 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
    
    :exitThisCmd
    echo.
    echo ******waring : wirte the file not exist.******
    
    :exitOK
    
    echo.
    pause
    echo on
    
  • 相关阅读:
    解决asp.net Core Mvc网页汉字乱码问题
    DbInitializer.cs初始化过程中context.entityName.Add()遇到的类型不匹配错误
    EF Core » 关系
    EF Core » 影子属性
    如何增加Asp.Net Core生成的模板网站中用户信息表中的列(AspNetUsers)
    Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio »迁移
    centos下添加git
    Linux网络流量实时监控ifstat iftop命令详解
    常见CEPH操作命令
    CentOS 6.3下Samba服务器的安装与配置
  • 原文地址:https://www.cnblogs.com/kutsu/p/13829619.html
Copyright © 2011-2022 走看看