如何在文件中获取windows curl响应代码

如何在文件中获取windows curl响应代码,curl,jenkins-pipeline,artifactory,Curl,Jenkins Pipeline,Artifactory,在Jenkinsfile中,我试图找出Artifactory中是否存在文件。Jenkins代理在windows上运行。 因此,我将2个stackoverflow解决方案和组合成以下代码: try { env.CHECK_URL = bat(returnStdout: true, script: "curl -s -o /dev/null -w \"%%{http_code}\" \"https://myartifactory.com/myfile.ex

在Jenkinsfile中,我试图找出Artifactory中是否存在文件。Jenkins代理在windows上运行。 因此,我将2个stackoverflow解决方案和组合成以下代码:

try {
  env.CHECK_URL = bat(returnStdout: true, script: "curl -s -o /dev/null -w \"%%{http_code}\" \"https://myartifactory.com/myfile.exe\"")
} catch (Exception e) {
  echo 'Exception occurred: ' + e.toString()
}
echo "URL Response: ${env.CHECK_URL}"
我希望env.CHECK_URL包含200(已找到)或404(未找到)。但是http代码200被写入输出,而不是变量。curl返回错误23(写入正文失败)

上述功能的输出:

C:\Jenkins\workspace\my_jenkins>curl -s -o /dev/null -w "%{http_code}" "https://myartifactory.com/myfile.exe" 
200
[Pipeline] echo
Exception occurred: hudson.AbortException: script returned exit code 23
[Pipeline] echo
URL Response: null

有什么建议可以解决吗?或者,如果Artifactory中存在文件,Jenkinsfile找到ouf的另一种方法?

尽管我没有成功使用curl,但我至少能够使用Artifactory库找到另一种解决方案:

。。。这将根据文件是否存在返回0或1

stdout = bat(returnStdout: true, script: "jfrog rt s --url https:/myartifactory.com/ --apikey \"${ART_PSW}\" --user ${ART_USR} --count myteam/myfile.exe")
def deployed_count = stdout.readLines().last().trim()