我正在尝试编写一个脚本,该脚本循环通过其中包含一堆链接的CSV文件。然后,我想用Invoke-WebRequest检查页面是否可访问。如果HTTP响应代码为“ 200”,则此方法工作正常。但是我也希望脚本在它有点像4xx,3xx,5xx等时写出响应代码。到目前为止,响应代码变量只是空的。
问题在于,当“ Invoke-WebRequest”返回的不是200(也就是脚本的要点)时,它会生成错误,而不是使用HTTP响应代码为我提供干净的输出。
到目前为止,我的脚本是
$Links = Import-Csv -Path 'Path\to\file.csv' -Delimiter ";"
$user = Get-Credential
function Check-Link{
$name_de = $Link.title_de
$link_de = $Link.url_de
Write-Host $link_de
$HTTP_Response = (Invoke-WebRequest $Link.url_de -Credential $user -Method Head).StatusCode
if($HTTP_Response -ne 200){
Write-Host "The page $name_de is not reachable! Response Code: $HTTP_Response"
}
else{
Write-Host "The page $name_de is reachable!"
}
}
$DeadLinks
foreach($Link in $Links){
Check-Link
Start-Sleep 10
}
现在,当响应码不等于200时,输出ist:
www.example.com
the page example.com is not reachable! Response Code:
预期输出为:
www.example.com
the page example.com is not reachable! Response Code: 401