У меня есть огромный список URL-адресов блогов, для проверки которых мне нужно проверить.Я собрал скрипт из этого ответа и из здесь .
Вот мой скрипт:
$siteURL = 'http://example.com/'
$File = '.\urls.txt'
$NewContent = Get-Content -Path $File | ForEach-Object {
$_
$HTTP_Request = [System.Net.WebRequest]::Create($siteURL + $_)
$HTTP_Response = $HTTP_Request.GetResponse()
$HTTP_Status = [int]$HTTP_Response.StatusCode
if ($HTTP_Status -eq 200) {
" - 200"
} else {
" - " + $HTTP_Status
}
$HTTP_Response.Close()
}
$NewContent | Out-File -FilePath $File -Encoding Default -Force
Моя проблема в том, чтокогда он получает ошибку 404, он не добавляет ее в файл и возвращает следующую ошибку в консоли:
Exception calling "GetResponse" with "0" argument(s): "The remote server
returned an error: (404) Not Found."
At C:\Users\user.name\urlcheck.ps1:19 char:9
+ $HTTP_Response = $HTTP_Request.GetResponse()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException
Почему я получаю эту ошибку?
Бонусный вопрос: мои ответы "200 - ОК" добавляются в новую строку, почему?