如何使用 cmd 或 PowerShell 设置环境变量
- [一、cmd 指令](#一、cmd 指令)
- [二、PowShell 指令](#二、PowShell 指令)
- 三、更多注意事项
- 四、介绍与对比
-
- [4.1 CMD(命令提示符)基础介绍](#4.1 CMD(命令提示符)基础介绍)
- [4.2 PowerShell 基础介绍](#4.2 PowerShell 基础介绍)
- [4.3 对比](#4.3 对比)
一、cmd 指令
简介
cmd 是Command 的缩写,即命令提示符 。适合执行简单指令,平时使用 cmd 指令就能应对大多数场景。脚本后缀: *.bat / *.cmd
设置环境变量
查看环境变量的值(仅适用于 cmd ):
cmd
:: 查看单个变量
echo %ABC%
:: 查看所有相关变量(以字母A开头的所有环境变量)
set A
临时设置环境变量(仅在当前窗口生效,关闭窗口则失效):
cmd
:: 语法:set 变量名=值
set ABC=123
设置用户级别环境变量(永久生效,仅对当前用户有效):
cmd
:: 语法:setx 变量名 "值"
setx ABC "123456"
设置系统级别环境变量(永久生效,对所有用户有效,需要以 管理员身份 打开 cmd):
cmd
:: 语法:setx 变量名 "值" /M
setx ABC "123456789" /M
删除环境变量
cmd
:: 删除临时变量
:: 语法:set 变量名=(这里啥也不写)
set ABC=
:: 删除用户/系统环境变量
:: cmd 没有直接删除永久变量的命令,需通过注册表删除
:: 建议直接打开图形化界面删除
注意:
- 环境变量的优先级:
当前窗口(临时)>用户级别>系统级别 - 设置 / 删除 用户级 / 系统级环境变量,需要 重新打开新的终端窗口 才能读取到新值。
二、PowShell 指令
简介
PowShell 你可以理解为是 cmd 的进阶,它支持和兼容 cmd 的绝大多数指令和一些 Linux 的指令。适合执行较为复杂的指令。脚本后缀: *.ps1 。
设置环境变量
读取环境变量: ABC
powershell
# 查看单个变量
$env:ABC
# 查看所有相关变量
Get-ChildItem Env:A*
临时设置环境变量(仅在当前 PowerShell 会话生效,关闭窗口则失效):
powershell
# 语法:$env:变量名 = "值"
$env:ABC = "123"
设置用户级别环境变量(永久生效,仅对当前用户有效):
powershell
# 语法:[Environment]::SetEnvironmentVariable("变量名", "值", "User")
[Environment]::SetEnvironmentVariable("ABC", "123456", "User")
设置系统级别环境变量(永久生效,对所有用户有效,需要以 管理员身份 打开 powshell):
powershell
# 语法:[Environment]::SetEnvironmentVariable("变量名", "值", "Machine")
[Environment]::SetEnvironmentVariable("ABC", "123456789", "Machine")
删除环境变量
powershell
# 1. 删除临时环境变量
# 方法1:将变量值设为 $null
$env:OLLAMA_HOST = $null
# 方法2:直接删除环境变量项(更彻底)
Remove-Item Env:OLLAMA_HOST
# 2. 删除 用户级别 环境变量
[Environment]::SetEnvironmentVariable("ABC", $null, "User")
# 3. 删除 系统级别 环境变量
[Environment]::SetEnvironmentVariable("ABC", $null, "Machine")
三、更多注意事项
生效范围:
- 临时设置仅对当前窗口 / 会话有效,关闭后失效。
- 设置 / 删除 用户级 / 系统级环境变量,需要 重新打开新的终端窗口 才能读取到新值。
管理员权限:
- 设置系统级环境变量时,必须以 "管理员身份" 运行终端(CMD 或 PowerShell),否则会报错。
变量值中的空格:
- 如果环境变量值包含空格(如路径
C:\Program Files\Ollama),建议用双引号包裹(CMD 中必须,PowerShell 中推荐)。
四、介绍与对比
4.1 CMD(命令提示符)基础介绍
CMD 全称 Command Prompt,是 Windows 系统原生的经典命令行解释器,前身是 MS-DOS 操作系统,从 Windows NT 时代开始内置到所有 Windows 版本中。
- 核心特点:基于 DOS 命令体系,语法简单直白,输入输出均为纯文本,无复杂编程逻辑,启动速度极快,占用系统资源极低。
- 核心命令:常用命令多为短字符指令,如
dir(查看目录)、cd(切换路径)、copy(复制文件)、ipconfig(查看网络配置)、ping(网络连通测试)等。 - 脚本格式:支持
.bat/.cmd后缀的批处理脚本,可实现简单的批量操作。
4.2 PowerShell 基础介绍
PowerShell 是微软基于.NET/.NET Core 开发的现代化命令行 Shell 与脚本编程环境,2006 年首次发布,Windows 10 及以上系统默认预装,最新的 PowerShell 7 + 支持跨 Windows、Linux、macOS 运行。
- 核心特点:面向对象而非纯文本,命令输出为结构化的.NET 对象,支持管道传递对象数据;拥有完整的编程能力,支持条件判断、循环、函数、模块化开发,可直接调用系统 API、.NET 库、WMI/COM 组件。
- 核心命令:官方规范命令为
动词-名词格式的 cmdlet,如Get-ChildItem(对应 cmd 的 dir)、Get-NetIPAddress(查看 IP 配置),同时完全兼容 CMD 的所有命令。 - 脚本格式:支持
.ps1后缀的 PowerShell 脚本,可实现复杂的自动化逻辑。
4.3 对比
| 对比维度 | CMD | PowerShell |
|---|---|---|
| 底层架构 | 基于 DOS 体系,无框架依赖 | 基于.NET/.NET Core 框架,功能扩展性极强 |
| 数据处理 | 仅支持纯文本处理,筛选数据需手动解析文本 | 面向对象,可直接操作对象的属性和方法,数据处理更精准高效 |
| 编程能力 | 仅支持简单的批处理逻辑,无完善的编程能力 | 完整的脚本编程语言,支持异常处理、模块化、函数式编程等高级特性 |
| 兼容性 | 全 Windows 版本兼容,老旧系统支持极好 | 老系统需手动安装,Windows 10/11 原生支持,跨平台能力强 |
| 资源占用 | 极低,启动速度毫秒级 | 相对更高,需加载.NET 环境,启动速度略慢 |
End
你好,少年,未来可期~