查找以x(Groovy)开头的目录

查找以x(Groovy)开头的目录,groovy,Groovy,使用groovy,我想找到一个以XXXX字符开头的目录。我是一个非常棒的新手,非常感谢你的帮助 给定目录Y并且只在Y内搜索,我需要找到一个以XXXX开头的目录。它应该只有一个与模式匹配的目录 这是供詹金斯使用的 我尝试了以下方法: def release_dir_path = "C:\\Dir\\ReleaseDir" def pattern = "DWH-4072" def release_path = "" new File(release_dir_path).eachDir { File

使用groovy,我想找到一个以XXXX字符开头的目录。我是一个非常棒的新手,非常感谢你的帮助

给定目录Y并且只在Y内搜索,我需要找到一个以XXXX开头的目录。它应该只有一个与模式匹配的目录

这是供詹金斯使用的

我尝试了以下方法:

def release_dir_path = "C:\\Dir\\ReleaseDir"
def pattern = "DWH-4072"
def release_path = ""

new File(release_dir_path).eachDir { File dir -> if 
    (dir.name.startsWith(pattern) { release_path = dir })}
println release_path
我们的想法是在Y中找到以XXXX开头的目录,并将该值放入release_path。

您尚未指定:

  • 搜索应该从哪个目录开始
  • 如何搜索,即递归或非递归
  • 我假设您希望在
    /tmp
    中进行非递归搜索

    // stores each matching directory as a File object
    List<File> matchingDirs = []
    
    new File('/tmp').eachDir { File dir ->    
       if (dir.name.startsWith('XXXX')) {
           matchingDirs << dir
       }
    }
    
    // after updating your question to explain that there should be just 
    // one matching dir and you want to capture it in a variable and print it
    if (matchingDirs) {
      def matchingDir = matchingDirs[0]
      println matchingDir
    }
    
    //将每个匹配目录存储为文件对象
    列表匹配目录=[]
    新文件('/tmp')。eachDir{File dir->
    if(dir.name.startsWith('XXXX')){
    
    匹配目录您希望在何处搜索,例如仅在当前目录中,还是递归搜索所有子目录?位置错误)…问题已通过以下方式解决:def release_dir_path=“C:\\Users\\Peret\\OneDrive\\StarsGroovySandbox\\ReleaseDir”def pattern=“DWH-4072”def release_path=”“new File(release_dir_path)。每个目录{File dir->if(dir.name.startsWith(pattern)){release_path=dir}println release_path谢谢,这看起来很有希望..我从目录Y开始,只需要找到Y的一个子目录,以XXXX开头,它应该只是一个目录。在更正了一个错误后,我现在就找到了。谢谢。def release_dir_path=“C:\\Users\\Peret\\OneDrive\\StarsGroovySandbox\\ReleaseDir”def pattern=“DWH-4072”def release_path=”“新文件(release_dir_path).eachDir{File dir->if(dir.name.startsWith(pattern)){release_path=dir}println发布_path@PeretzRickett我看不出你的解决方案和我最初提出的解决方案有什么实质性的区别,但我已经更新了我的答案,使之更符合你更新的问题