从 jenkins groovy 脚本中的文件名中删除子字符串

Remove substring from filename in jenkins groovy script

您好,我正在尝试从 jenkins 管道脚本的文件名中删除子字符串“-unsigned”。

where filePattern app/build/outputs/**/-release.apk".

下面写了groovy脚本

        findFiles(glob: filePattern).each { file ->
            sh """
            mv ${file.path} "${file.path//-unsigned/}"
            """
        }

出现意外字符错误:0XFFFF。

可以建议我到底错过了什么。或建议如何从 groovy.

中的文件名中删除子字符串

但不确定这是重命名文件的最佳方式:

findFiles(glob: filePattern).each { file ->
   sh """
      mv ${file.path} "${file.path - '-unsigned'}"
      """
}

您的代码中存在问题,您在此表达式 // 中有 ${file.path // ...}

编译器可以将其作为单行注释

尝试在 groovy 控制台中 运行 这个:

"""
${'abc' //no matter what here}
"""
//comment here

^^^ 编译错误:意外字符:0xFFFF

参见bash(1) - Linux man page

EXPANSION

[...]

Parameter Expansion

[...]

${parameter/pattern/string}

Pattern substitution. [...] Parameter is expanded and the longest match of pattern against its value is replaced with string.

所以应该是"${file.path/-unsigned//}".