如何在 Jenkins 的活动选择参数中将简单的 shell 命令作为 groovy 脚本执行?

How do I execute a simple shell-command as a groovy script in the active choice parameter in Jenkins?

我正在尝试获取给定目录中的目录名称。为了尝试一下,我使用了常规管道,这是工作代码:

foundDirectories = sh(script: "ls -1 'X:\example\directory'", returnStdout: true).split()
    foundDirectories.each { key ->
        println(key)
    }

我稍微修改了代码以使其用作参数脚本:

foundDirectories = sh(script: "ls -1 'X:\example\directory'", returnStdout: true).split()

return foundDirectories 

我尝试在 Active Choice Parameter 中使用此代码,以便在使用参数构建时能够在找到的目录之间进行选择。当我单击“使用参数构建”按钮并显示菜单时,脚本显然不起作用,因为该框保持为空。如果我添加后备脚本,它就会被执行。

我是否必须围绕它添加一些代码,或者 sh-commands 本身就不能工作?

您可以尝试以下命令,它将列出给定目录中的所有文件。我试过了linux系统

甚至您可以使用 eachFileMatch(regex).

基于正则表达式过滤文件
import static groovy.io.FileType.FILES
def list=[]
new File("X:\example\directory").eachFile() { 
  file -> list.add(file.getName())
}
return list