我们使用詹金斯。 我想将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/”是否存在。
答案 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))) {...}