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

Jenkins Groovy脚本删除文件名子串报0XFFFF错误如何解决?

错误原因

你遇到的unexpected char : 0XFFFF报错是因为在sh块的shell脚本片段中直接混合了Groovy字符串替换逻辑,GString插值解析和shell语法产生了冲突。你当前的写法将Groovy的字符串替换操作直接嵌入到了sh脚本的引号内部,Jenkins流水线在解析执行时出现了字符识别异常。

正确实现方式

所有Groovy层面的路径计算、字符串替换操作建议提前在Groovy代码层完成,再将处理完成的变量传递给sh命令执行,避免两种语法混合产生冲突:

findFiles(glob: filePattern).each { file ->
    // 提前在Groovy层完成路径读取和子串替换
    def originalPath = file.path
    def targetPath = originalPath.replace("-unsigned", "")
    // 仅将最终处理好的路径传入shell命令执行
    sh "mv '${originalPath}' '${targetPath}'"
}

如果路径中包含空格、特殊符号,也可以改用如下更安全的参数化sh写法:

findFiles(glob: filePattern).each { file ->
    def originalPath = file.path
    def targetPath = originalPath.replace("-unsigned", "")
    sh(
        script: "mv \$1 \$2",
        args: [originalPath, targetPath]
    )
}

额外注意点

  • 正式执行重命名前可以先加println "原路径:${originalPath},新路径:${targetPath}"打印路径,确认替换逻辑符合预期
  • 如果需要批量处理大量文件,可以先加if(originalPath.contains("-unsigned"))判断,避免对不需要重命名的文件执行mv操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:54:04