詹金斯:如何使用Powershell检查Nexus中的服务器目录是否存在?

时间:2019-05-14 07:33:17

标签: powershell jenkins

我们使用詹金斯。 我想将Windows服务器上的目录中的目录和文件上传到具有Powershell的Nexus中。

但是在执行此操作之前,我要检查Nexus中是否已经存在此目录。

使用wget,我可以将Nexus的目录+文件下载到我的Jenkins工作区中。

但是我只想通过URL(“ http://xxxxx/yyyyy/zzzzz/”)检查目录/文件,如果服务器上的Nexus中存在该目录/文件。

我尝试过: -测试路径-路径, -Get-SpWeb(无法识别), -调用请求, -HTTPRequest = [System.Net.WebRequest] :: Create('url')。

我尝试了很多,但是调用了请求,并且如果目录存在,HTTPRequest可以正常工作。但是,如果不存在,则会出现404错误($ HTTP_Response = $ HTTP_Request.GetResponse())或挂起...

我正在寻找Powershell(Jenkins)的示例/教程,该示例/教程正在检查服务器上Nexus中的目录/文件“ http://xxxxx/yyyyy/zzzzz/”是否存在。

2 个答案:

答案 0 :(得分:0)

您可以这样做:

$status = (Invoke-WebRequest -Uri http://xxxxx/yyyyy/zzzzz/).StatusCode
if ($status -eq 200) {
   #do stuff when url exists
}

答案 1 :(得分:0)

“仅”这对Jenkins有用,我现在不知道为什么-Mehthod HEAD是必要的,它做什么,但至少在Jenkins中有效:

try {
    $Response = Invoke-WebRequest -Method HEAD -Uri $url
    $status = $_.Exception.Response.StatusCode.Value__

} catch {
    $status = $_.Exception.Response.StatusCode.Value__
} # END try {...} catch {...} 

if (($status -eq 200) -Or ([string]::IsNullOrWhiteSpace($status))) {...}