如何使用 cmd 或 PowerShell 设置环境变量

如何使用 cmd 或 PowerShell 设置环境变量

  • [一、cmd 指令](#一、cmd 指令)
  • [二、PowShell 指令](#二、PowShell 指令)
  • 三、更多注意事项
  • 四、介绍与对比
    • [4.1 CMD(命令提示符)基础介绍](#4.1 CMD(命令提示符)基础介绍)
    • [4.2 PowerShell 基础介绍](#4.2 PowerShell 基础介绍)
    • [4.3 对比](#4.3 对比)

一、cmd 指令

简介

cmdCommand 的缩写,即命令提示符 。适合执行简单指令,平时使用 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

你好,少年,未来可期~

相关推荐
蜡台7 天前
Flutter 安装配置
android·java·flutter·环境变量
liulilittle11 天前
yt-dlp 实用命令速查手册(YouTube Downloader)
windows·shell·cmd
liulilittle12 天前
CMD命令行将 .lua 文件扩展名改为 .txt
windows·shell·cmd
亚林瓜子14 天前
AWS EB中通过代码方式给EC2添加环境变量
aws·环境变量·ec2·eb·中国云
wrold16 天前
常见Linux权限提升笔记
环境变量·sudo·内核漏洞·计划任务·linux提权·suid·lxc/lxd
love530love1 个月前
Windows 多 Git 环境冲突:一个环境变量优先级引发的血案
人工智能·windows·git·环境变量·scoop
chrisleequeen1 个月前
【无标题】
conda·mac·anaconda·环境变量·export·no found
予枫的编程笔记1 个月前
【Docker进阶篇】拒绝重复构建镜像!.env文件+Profile实现多环境无缝切换
docker·环境变量·docker镜像·后端开发·配置管理·多环境配置·.env文件
Fcy6481 个月前
Linux下 进程(五)(命令⾏参数和环境变量)
linux·运维·服务器·环境变量·命令行参数