Windows环境下Jenkins Pipeline无法识别sh.exe问题求助
解决Windows下Jenkins Pipeline
sh命令执行失败的方案 直接指定sh.exe完整路径调用
绕开Jenkins对sh命令的路径解析,直接调用Git的shell执行脚本,示例:bat '"C:\\Program Files\\Git\\bin\\sh.exe" -c "你的shell命令内容"'检查节点级环境变量配置
全局属性的路径可能未生效到流水线运行的节点,按以下步骤配置:- 进入Jenkins管理页面 → 管理节点和云 → 选中运行流水线的节点(如master)
- 点击节点的配置 → 找到节点属性下的环境变量
- 添加
PATH变量,值为${PATH};C:\Program Files\Git\bin;C:\Program Files\Git\usr\bin(用分号拼接原有路径与Git路径) - 保存后重启Jenkins节点,重新运行流水线
手动指定Jenkins的Shell路径
直接修改Jenkins默认的Shell可执行文件路径:- 进入Jenkins管理页面 → 全局工具配置
- 找到Shell配置项(无则需先安装对应插件)
- 将Shell可执行文件路径设置为
C:\Program Files\Git\bin\sh.exe - 保存后重新运行流水线测试
在Pipeline内临时追加PATH
在流水线脚本开头显式设置环境变量,确保Git路径被优先识别:pipeline { agent any environment { PATH = "C:\\Program Files\\Git\\bin;C:\\Program Files\\Git\\usr\\bin;${env.PATH}" } stages { stage('Test') { steps { sh 'echo $PATH' sh '你的shell命令内容' } } } }验证Jenkins用户权限
确保Jenkins服务运行的用户(通常是Local System或指定服务用户)拥有C:\Program Files\Git\bin\sh.exe的读取和执行权限:- 右键
C:\Program Files\Git文件夹 → 属性 → 安全 - 检查Jenkins服务用户是否在权限列表中,且拥有读取和执行权限
- 无权限则添加用户并赋予对应权限,之后重启Jenkins服务
- 右键
内容的提问来源于stack exchange,提问作者Gaston
相关产品推荐
相关产品推荐

