bat

您所在的位置:网站首页 环境变量用户变量path bat

bat

2023-07-29 12:32| 来源: 网络整理| 查看: 265

使用setx /M path "%path%;%%winrar%%"这种方式修改环境变量存在的问题 对于 path 这种 既有用户级变量和系统级变量的变量 直接使用setx /M path "%path%;%%winrar%%"会将用户变量一起添加到系统级变量中。再加上已经存在的用户环境变量 path环境变量就会冗余。 不管是 path 或 echo %path% 亦或 set path 这三种方式都 只是将值 直接赋值给path,环境变量中的 引用的环境变量 全部破坏。 win10初始时的path 系统级path %SystemRoot%\system32; %SystemRoot%; %SystemRoot%\System32\Wbem; %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\; %SYSTEMROOT%\System32\OpenSSH\ 用户级path %USERPROFILE%\AppData\Local\Microsoft\WindowsApps; 使用path查看 PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\zbf\AppData\Local\Microsoft\WindowsApps; 执行setx /M path "%path%;%%winrar%%"后的path 系统级path C:\Windows\system32; C:\Windows; C:\Windows\System32\Wbem; C:\Windows\System32\WindowsPowerShell\v1.0\; C:\Windows\System32\OpenSSH\; C:\Users\zbf\AppData\Local\Microsoft\WindowsApps; C:\Program Files\WinRAR; 用户级path还会保留,还是原址 %USERPROFILE%\AppData\Local\Microsoft\WindowsApps; 使用path查看 PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\zbf\AppData\Local\Microsoft\WindowsApps;C:\Program Files\WinRAR;C:\Users\zbf\AppData\Local\Microsoft\WindowsApps; 给PATH追加环境变量

这里使用的方法时 直接从注册表中查,然后从查询结果中截取出数据,再使用setx将结果拼接上新路径 赋给Path

以下是从注册表中查询path的系统级变量,并截取出数据

@echo off Setlocal enabledelayedexpansion @REM vscode中自动开启延迟环境变量扩展, @REM 环境变量在注册表中的位置 @REM reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "Path" set key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" @REM 方式1 分列方式感觉有点问题 @REM for /F "skip=2 delims=Z tokens=2*" %%i IN ('reg query %key% /v "Path"') do ( @REM echo %%i @REM set temppath=%%i @REM echo !temppath:~4! @REM ) @REM 方式2 for /F "skip=2 delims=" %%i IN ('reg query %key% /v "Path"') do ( echo %%i set temppath=%%i echo !temppath:~29! ) @rem 方式3 for /F "skip=2 tokens=3" %%i IN ('reg query %key% /v "Path"') do ( echo %%i ) pause


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3