首页/系统/Windows 运维速查/set 查看环境变量
CMD 常用命令74 条

set 查看环境变量

列出或临时设置环境变量:set 无参数列出全部,set 前缀过滤,set VAR=值 只影响当前会话。

Windows 运维速查系统更新于 2026-10-13

命令是干什么的

set 用于查看与临时设置 CMD 环境变量:不带参数列出当前会话的全部变量,带前缀过滤显示匹配项,set 变量=值 只在当前命令行窗口生效。它不同于图形界面的“系统属性-环境变量”:这里的修改关闭窗口即失效,需要持久化必须用 setx。

变量引用与拼接

引用变量用 %变量名%,拼接路径写成 %PATH%;新路径 的形式。set 的等号两边不能有空格:写成 set A = 1 会创建一个名字带尾空格的变量,之后取值总为空,这是排查“变量明明设了却取不到值”时的首要检查点。

基本信息

适用平台Windows 全版本 CMD(Windows 7/10/11 与各版 Server)
语法set [变量[=值]];set 前缀* 过滤显示
作用域仅当前命令行会话,关闭窗口即失效;持久化用 setx
相关命令setx 写入用户或系统环境变量;echo %变量% 查看取值

典型使用场景

  • 排查“命令找不到”:先 set PATH 看当前会话的 PATH 是否完整
  • 临时为某次运行指定工具目录,不改动系统级配置
  • 批处理脚本内部设置临时变量,供后续命令引用
  • 按前缀过滤,快速确认某软件安装后写入的路径变量
  • 对比交互会话与脚本环境差异,同一台机器上变量可能不同

常用示例

常用示例
set                             # 列出当前会话全部变量
set PATH                        # 只看 PATH
set USER                        # 过滤显示以 USER 开头的变量
set TEMP=C:\Temp                # 临时覆盖 TEMP,仅本窗口有效
set PATH=%PATH%;D:\tools        # 在原有 PATH 基础上追加路径
setx PATH "%PATH%;D:\tools"     # 持久化到用户环境变量,新窗口才生效

用法读法

写法效果说明
set列出全部变量输出很长,建议先加前缀过滤
set PATH显示指定变量变量不存在时不输出任何内容
set TEMP=C:\Temp设置变量等号两边不能有空格
set PATH=%PATH%;D:\tools追加而非覆盖带 %PATH% 才是追加
setx 变量 值持久化到注册表对当前窗口不生效,需新开窗口
echo %变量%查看取值未定义时原样输出 %变量%
set 只影响当前命令行会话,关闭窗口或新开窗口都会回到原值;需要跨会话保留必须用 setx,而 setx 的修改对当前已打开的窗口同样不生效。
set PATH=新值(不带 %PATH%)会把整条 PATH 覆盖成单个路径,大量系统命令会立即失效;追加时务必保留 %PATH%。

易错点

  • set PATH=新值 不带 %PATH% 会覆盖整条 PATH,导致大量命令失效
  • set 的等号两边带空格会创建带尾空格的变量名,取值为空
  • 把 set 当成永久修改,新开窗口后发现配置丢失
  • 变量未定义时 %var% 原样输出,判断是否存在应该用 if defined

数据来源与参考

  • Microsoft Learn:set 命令

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌