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

Github Action Windows runner 如何从PATH中移除所有sh.exe

GitHub Windows Runner移除PATH中sh.exe相关路径解决方案

失败原因说明

  • 第一次尝试使用的语法不符合PowerShell(Windows runner默认shell)的语法规则,无法直接通过set GITHUB_PATH -=的方式移除路径
  • 第二次尝试在bash环境下使用了Windows cmd专属的变量替换语法%PATH:xxx=%,bash无法识别该语法导致报错

可行方案1:过滤PATH移除含sh.exe的目录(推荐,无文件删除操作)

使用PowerShell执行路径过滤,修改后的值同步到后续所有步骤:

- name: 移除包含sh.exe的PATH路径
  shell: powershell
  run: |
    # 拆分当前PATH为数组
    $pathArr = $env:PATH -split ';' | Where-Object { $_ }
    # 过滤掉所有包含sh.exe的目录
    $validPaths = $pathArr | Where-Object {
      -not (Test-Path (Join-Path $_ "sh.exe") -ErrorAction SilentlyContinue)
    }
    # 拼接为新的PATH
    $newPath = $validPaths -join ';'
    # 更新当前步骤的PATH
    $env:PATH = $newPath
    # 同步到后续所有步骤
    echo "PATH=$newPath" >> $env:GITHUB_ENV

可行方案2:直接删除所有sh.exe文件(简单高效)

如果允许修改runner内置文件,可以直接查找删除所有sh.exe:

- name: 删除所有sh.exe文件
  shell: powershell
  run: |
    Get-ChildItem -Path C:\ -Filter sh.exe -Recurse -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:57:03