You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions的Windows cmd中使用GITHUB_ENV持久化环境变量

在GitHub Actions中使用CMD通过GITHUB_ENV持久化环境变量的方法

在GitHub Actions里,用CMD实现步骤间环境变量持久化,核心是通过echo命令将变量写入%GITHUB_ENV%文件,后续步骤就能自动读取这些变量。

基础用法

直接用echo 变量名=变量值 >> %GITHUB_ENV%的格式,把变量追加到环境变量文件中。比如:

echo MY_VAR=hello-world >> %GITHUB_ENV%

需要注意,CMD步骤必须显式指定shell: cmd(部分runner默认shell不是CMD),完整的工作流片段示例:

steps:
  - name: 设置持久化变量
    shell: cmd
    run: echo MY_VAR=hello-from-cmd >> %GITHUB_ENV%
  
  - name: 读取变量
    shell: cmd
    run: echo %MY_VAR%

处理含特殊字符的变量值

如果变量值包含空格、!这类特殊字符,需要注意CMD的语法特性:

  • 带空格的值直接写即可,CMD会把等号后的全部内容作为变量值:
    echo MY_VAR=Hello GitHub Actions >> %GITHUB_ENV%
    
  • 如果值里有!,因为CMD默认启用延迟扩展,会把!解析为变量标记,需要先关闭延迟扩展再写入:
    @echo off
    setlocal DisableDelayedExpansion
    echo MY_VAR=Hello!Actions >> %GITHUB_ENV%
    endlocal
    

跨shell读取变量

写入GITHUB_ENV的变量不仅能在CMD步骤中用%变量名%读取,也能在其他shell步骤中访问:

  • PowerShell步骤:用$env:变量名读取
  • Bash步骤(Linux/macOS runner):用$变量名读取

内容的提问来源于stack exchange,提问作者dvossCricut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 00:02:08