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

Jenkins运行sfdx SOQL查询报'C:\Program'未识别错误求助

问题根因

你遇到的'C:\Program' is not recognized报错是Windows系统下典型的路径含空格未正确转义问题。你本地命令行/PowerShell执行正常是因为当前用户的环境变量PATH中已经正确注册了sfdx的安装路径,而Jenkins执行Job时默认使用独立的系统环境变量/服务账号环境变量,无法正确识别带空格的sfdx安装路径。

修复方案
  • 方案1:直接使用全路径调用sfdx,将带空格的路径用双引号包裹。首先在你测试正常的服务器命令行执行where sfdx获取sfdx的完整安装路径,默认路径为C:\Program Files\sfdx\bin\sfdx.exe,替换脚本中的sfdx为全路径即可:
"C:\Program Files\sfdx\bin\sfdx.exe" force:auth:jwt:grant -i ${CONNECTED_APP_CONSUMER_KEY} -u ${DEV_HUB} -f ${JENKINS_HOME}/certs/prod/server.key -r [...] -a DevHub
"C:\Program Files\sfdx\bin\sfdx.exe" force:org:list
"C:\Program Files\sfdx\bin\sfdx.exe" force:data:soql:query -u ${DEV_HUB} -q "SELECT Id, Name FROM [...tablename...]" -r human
  • 方案2:在Job的shell脚本最开头优先将sfdx路径加入当前执行环境的PATH变量:
set PATH="C:\Program Files\sfdx\bin";%PATH%
sfdx force:auth:jwt:grant -i ${CONNECTED_APP_CONSUMER_KEY} -u ${DEV_HUB} -f ${JENKINS_HOME}/certs/prod/server.key -r [...] -a DevHub
sfdx force:org:list
sfdx force:data:soql:query -u ${DEV_HUB} -q "SELECT Id, Name FROM [...tablename...]" -r human
  • 额外校验项:确认Jenkins Job调度的执行节点就是你本地测试过sfdx可正常运行的服务器,避免任务被调度到未安装sfdx的其他节点执行。如果仍有异常,可以在脚本开头加一行where sfdx,执行Job后查看输出的sfdx路径是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:15:04