windows设置环境变量的5种方法

您所在的位置:网站首页 yarn配置环境变量 windows设置环境变量的5种方法

windows设置环境变量的5种方法

2023-04-06 16:56| 来源: 网络整理| 查看: 265

01.gui操作

这是最常用的,我之前一直用的是这一种

在此电脑右键,属性,高级系统设置,环境变量。。。

02.set 命令

和linux系统不一样,linux里面是可以把命令配到bashrc之类的文件里,这样环境变量就一直生效了。

set命令,只在这个终端内生效,退出就失效。

虽然也可以像linux一样把命令放到$profile里面,但是我觉得比较蠢,因为这样只有powershell终端里面生效,换成cmd是不会加载你这个profile的。

这个和powershell里面直接修改变量是一样的

像下面这样操作,当前窗口,搜索命令的Path变量就添加了。

$env:Path + ";path/your/new" 03.使用reg文件 04 setx命令

属于是很老的命令了

基本用法 setx 变量名称 变量值

默认改的是用户环境变量,尾部添加/m,可以修改系统环境变量。

例子:jdk版本管理

因为jdk是通过JAVA_HOME变量配置的,所以可以下载多个jdk,然后用setx设置环境变量来切换

这里用到了gsudo这个软件,比较方便,没有装这个软件需要打开管理员的终端执行命令

#安装jdk11 sudo choco install microsoftopenjdk11 #上面安装完会提示安装jdk的位置,这里我们赋值之后设置JAVA_HOME,设置到系统变量。 sudo setx JAVA_HOME C:\Program Files\Microsoft\jdk-11.0.18.10-hotspot /m #顺便把bin目录加到path sudo setx Path ($env:Path +';C:\Program Files\Microsoft\jdk-11.0.18.10-hotspot') ❯ setx /? SetX has three ways of working: Syntax 1: SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M] Syntax 2: SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M] Syntax 3: SETX [/S system [/U [domain\]user [/P [password]]]] /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters] Description: Creates or modifies environment variables in the user or system environment. Can set variables based on arguments, regkeys or file input. Parameter List: /S system Specifies the remote system to connect to. /U [domain\]user Specifies the user context under which the command should execute. /P [password] Specifies the password for the given user context. Prompts for input if omitted. var Specifies the environment variable to set. value Specifies a value to be assigned to the environment variable. /K regpath Specifies that the variable is set based on information from a registry key. Path should be specified in the format of hive\key\...\value. For example, HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Control\TimeZoneInformation\StandardName. /F file Specifies the filename of the text file to use. /A x,y Specifies absolute file coordinates (line X, item Y) as parameters to search within the file. /R x,y string Specifies relative file coordinates with respect to "string" as the search parameters. /M Specifies that the variable should be set in the system wide (HKEY_LOCAL_MACHINE) environment. The default is to set the variable under the HKEY_CURRENT_USER environment. /X Displays file contents with x,y coordinates. /D delimiters Specifies additional delimiters such as "," or "\". The built-in delimiters are space, tab, carriage return, and linefeed. Any ASCII character can be used as an additional delimiter. The maximum number of delimiters, including the built-in delimiters, is 15. /? Displays this help message. NOTE: 1) SETX writes variables to the master environment in the registry. 2) On a local system, variables created or modified by this tool will be available in future command windows but not in the current CMD.exe command window. 3) On a remote system, variables created or modified by this tool will be available at the next logon session. 4) The valid Registry Key data types are REG_DWORD, REG_EXPAND_SZ, REG_SZ, REG_MULTI_SZ. 5) Supported hives: HKEY_LOCAL_MACHINE (HKLM), HKEY_CURRENT_USER (HKCU). 6) Delimiters are case sensitive. 7) REG_DWORD values are extracted from the registry in decimal format. Examples: SETX MACHINE COMPAQ SETX MACHINE "COMPAQ COMPUTER" /M SETX MYPATH "%PATH%" SETX MYPATH ~PATH~ SETX /S system /U user /P password MACHINE COMPAQ SETX /S system /U user /P password MYPATH ^%PATH^% SETX TZONE /K HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Control\TimeZoneInformation\StandardName SETX BUILD /K "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber" /M SETX /S system /U user /P password TZONE /K HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Control\TimeZoneInformation\ StandardName SETX /S system /U user /P password BUILD /K "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\ CurrentVersion\CurrentBuildNumber" /M SETX /F ipconfig.out /X SETX IPADDR /F ipconfig.out /A 5,11 SETX OCTET1 /F ipconfig.out /A 5,3 /D "#$*." SETX IPGATEWAY /F ipconfig.out /R 0,7 Gateway SETX /S system /U user /P password /F c:\ipconfig.out /X Path变量设置

setx有一个问题是设置的最大长度是1024

所以path很长的时候,就不能用这个方法了。

比如我执行这个命令就会报错

sudo setx Path ($env:Path +';C:/Program Files/Microsoft/jdk-11.0.18.10-hotspot/bin') /m WARNING: The data being saved is truncated to 1024 characters. 05.powershell调用.net

其中GetEnvironmentVariable,一个参数是变量名,第二个参数target是范围,可以是 Process(当前进程),User(当前用户)或 Machine(本地计算机)

# 获取当前的 path 值 $path = [System.Environment]::GetEnvironmentVariable("Path","Machine") # 添加新的路径到 path 中 $path += ";C:\NewPath" # 设置新的 path 值 [System.Environment]::SetEnvironmentVariable("Path",$path,"Machine")


【本文地址】


今日新闻


推荐新闻


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