Jenkins 无法将带有 fileExists 的文件复制到多个目录

Jenkins can't copy file with fileExists to multiple directories

我在 Jenkins 凭证管理器中有一个文件,如果该文件夹存在,我想将其复制到多个目录中。

但是,fileExists 命令似乎只对一个文件夹有效,对其他文件夹无效。我已经尝试了使用 Java 的文件命令的所有方法,使用绝对路径似乎对我没有任何作用。

我尝试将环境变量指向与要检查的目录相同的级别,但在目录中似乎没有任何作用。

dir("${DIRECTORY_PATH_NO_SPACES}"){
                    //checks to see if the folder in harris-gallery exists 
                    script {
                        if (fileExists("/project1"))
                        {
                            withCredentials([file(credentialsId: "${KEYSTORE_PROPERTIES_FILE_ID}", variable: 'FILE')]) {
                                bat("copy /y $FILE keystore.properties")
                            }
                        }
                    }
                }

                dir("${WORKSPACE_PATH_NO_SPACES}"){
                    //checks to see if the folder in project2 exists      
                    script {
                        if (fileExists("/project2"))
                        {
                            withCredentials([file(credentialsId: "${KEYSTORE_PROPERTIES_FILE_ID}", variable: 'FILE')]) {
                                bat("copy /y $FILE keystore.properties")
                            }
                            bat("echo test")
                        }
                    }

                }


                dir("${DIRECTORY_PATH_NO_SPACES_project2_PROTOCOL}"){
                    //checks to see if the folder in project2 protocol exists  
                    script {
                        if (fileExists("/project3"))
                        {
                            withCredentials([file(credentialsId: "${KEYSTORE_PROPERTIES_FILE_ID}", variable: 'FILE')]) {
                                bat("copy /y $FILE keystore.properties")
                            }
                        }
                    }

                }
            }

在我看来,您正在尝试检查 ${DIRECTORY_PATH_NO_SPACES}/project1 是否存在,但实际上是在检查 /project1 是否存在于计算机的根目录中,而不是 DIRECTORY_PATH_NO_SPACES 中。

我会尝试检查完整路径“/${DIRECTORY_PATH_NO_SPACES}/project1”

终于可以在这里使用纯批处理了

                dir("${DIRECTORY_PATH_NO_SPACES}"){
                    //checks to see if the folder in harris-gallery exists 
                    script {
                            withCredentials([file(credentialsId: "${KEYSTORE_PROPERTIES_FILE_ID}", variable: 'FILE')]) {
                                bat("if exist /project1 copy /y $FILE keystore.properties")
                            }
                        }
                }