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

如何在Windows环境Jenkins脚本控制台打印指定文本文件内容

Jenkins Windows环境脚本控制台读取指定文件的正确方法

错误根因

Jenkins脚本控制台运行的是Groovy代码,不支持Windows cmd的%环境变量名%语法,也不识别无引号包裹的$变量/路径写法,你之前尝试的命令均不符合Groovy语法规则,因此触发编译错误。

正确执行代码

最简可运行版本

直接获取环境变量拼接路径后读取文件内容输出:

def jenkinsHome = System.getenv("JENKINS_HOME")
def targetFile = new File(jenkinsHome, "tools/tools-package-json-get-property/version.js")
println targetFile.text

带校验的稳妥版本

增加文件存在性判断,避免路径错误时抛出异常:

def jenkinsHome = System.getenv("JENKINS_HOME")
def targetFile = new File(jenkinsHome, "tools/tools-package-json-get-property/version.js")
if (targetFile.exists() && targetFile.isFile()) {
    println targetFile.text
} else {
    println "文件不存在,实际拼接路径为:${targetFile.absolutePath}"
}

旧写法错误说明

  • %JENKINS_HOME%是Windows cmd专属的环境变量引用方式,Groovy语法不识别该符号,直接当作无效字符处理触发编译错误
  • 无引号包裹的$JENKINS_HOME/tools/xxx写法中,Groovy会将/识别为除法运算符、路径中的-识别为减法运算符,完全不符合语法规范,因此报expecting EOF错误
  • 即使加了双引号包裹"%JENKINS_HOME%/tools/xxx",Groovy也不会自动解析替换%包裹的环境变量,只会原样输出字符串,无法得到正确的路径

内容的提问来源于stack exchange,提问作者Stéphane GRILLON

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 18:54:04