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")
}
}
}
我在 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")
}
}
}