从Windows节点上Jenkins Pipeline的文件路径中删除了反斜杠

vq8itlhq  于 2023-08-03  发布在  Jenkins
关注(0)|答案(1)|浏览(161)

我有一个jenkins管道文件,这个阶段在windows节点上执行(主节点在Mac上运行的容器上)。我正试图将一个exe文件从slave中的一个目录复制到同一个slave上的当前工作目录(由工作区创建的那个)
如果我在我的Jenkins文件上这样做:

def myPath = "c:\\Users\\user1\\jenkins\a\\b\\c\\d\\"
sh "ls $myPath"

字符串
这个很好用。但是,这需要使用当前的工作目录。
所以我做了这样的事情

def fileDirDestination = "\\b\\c\\d\\""
def fullFileDest = "${env.WORKSPACE}" + fileDirDestination


这样做我就没有任何反斜线了。我还试过四个引号“”和四个反斜杠

cusersuser1jenkinsabcd


我也试过这个:

def destinationFilePath = new FilePath(channel, build.workspace.toString() + "\\\\a\\\\b\\\\c\\\\d")
destinationFilePath.list()


这实际上导致了上面提到的同样的问题(没有反斜杠的路径)
有什么想法吗?

gupuwyp2

gupuwyp21#

我遇到了同样的问题,并发现了一个与此问题相关的bug:Jenkins Jira issue
作为一个临时的解决方案,我使用了WORKSPACE重定义,如下所示:

environment {
    
    WORKSPACE = WORKSPACE.replaceAll('\\\\', '/')

字符串

相关问题