在Windows中,设置环境变量可以使用set和setx。
set设置环境变量
直接使用set设置即可:
E:\>set OPENAI_API_KEY="你的API易平台密钥"E:\>set OPENAI_API_BASE="http://192.168.1.5:1337/v1"
让我们看看是否设置成功:
echo %OPENAI_API_KEY% %OPENAI_API_BASE%
"你的API易平台密钥" "http://192.168.1.5:1337/v1"
可见设置成功!
setx永久设置环境变量
要永久设置,需要用
setx OPENAI_API_KEY "your-api-key-here"
另外也可以使用开始菜单的“设置”-“系统”-“关于”--“高级系统设置”,找到“环境变量”设置按钮,然后进行环境变量的设置,参考:Windows设置环境变量的方法-CSDN博客
来个更详细的介绍set和setx
在 Windows 命令行环境中,set
和 setx
都是用来设置环境变量的命令,但它们之间有关键的区别,影响了它们的使用场景和作用范围:
1. set
命令
- 作用: 用于设置或显示当前命令行会话的环境变量。
- 作用范围: 仅对当前打开的
cmd.exe
(命令提示符)窗口有效。一旦你关闭该窗口,用set
命令设置的环境变量就会失效。 - 语法:
set 变量名=变量值
(设置变量)set 变量名
(显示特定变量的值)set
(显示所有环境变量)
- 用途: 主要用于临时设置变量,方便在当前命令行会话中进行操作,例如:
- 设置临时的程序路径
- 定义脚本中使用的变量
- 修改当前会话的环境变量
2. setx
命令
- 作用: 用于设置永久性的环境变量,这些变量会写入到注册表中,对所有未来的命令行会话、甚至是运行的程序都有效。
- 作用范围: 设置的环境变量会保存在注册表中,影响整个系统(或当前用户)。
- 语法:
setx 变量名 "变量值" /M
(以管理员权限设置系统变量,影响所有用户)setx 变量名 "变量值"
(设置用户变量,仅影响当前用户)setx 变量名
(从文件读取变量值,不常用)
- 用途: 主要用于设置需要长期生效的环境变量,例如:
- 设置 JDK 的安装路径 (
JAVA_HOME
) - 将程序添加到系统路径 (
PATH
),方便在任何地方运行 - 配置长期使用的环境变量
- 设置 JDK 的安装路径 (
总结:
特性 | set | setx |
---|---|---|
作用范围 | 当前命令行会话 | 永久性,影响系统或用户 |
持久性 | 临时的,关闭窗口失效 | 永久的,保存在注册表中 |
影响 | 仅影响当前 cmd.exe | 影响所有未来的 cmd.exe 和运行的程序 |
使用场景 | 临时性操作,脚本内部变量 | 设置需要长期生效的环境变量 |
需要管理员权限 | 否 | 设置系统变量需要 |
注意事项:
- 使用
setx
修改环境变量后,需要重新打开命令行窗口才能生效。已经运行的程序可能需要重启才能读取新的环境变量。 - 修改系统环境变量需要管理员权限。
setx
命令的值必须用双引号括起来,特别是包含空格或特殊字符时。- 不建议频繁使用
setx
修改环境变量,因为频繁写入注册表可能会影响系统性能。
示例:
rem 使用 set 命令,只在当前会话有效
set TEMP_DIR=C:\temprem 使用 setx 命令,永久生效
setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_202" /M // 需要管理员权限,影响所有用户
setx MY_VAR "My Value with Spaces" // 影响当前用户
记住,谨慎使用 setx
,特别是修改系统环境变量时,错误的配置可能会导致系统问题。