Выход из команды, если в PowerShell это занимает слишком много времени - PullRequest
1 голос
/ 17 февраля 2020
$uri="http:\\www.SomeUrl.com"
Measure-Command { $request = Invoke-WebRequest -Uri $uri -UseBasicParsing}

В приведенном выше сценарии powershell, как я могу выйти из Invoke-WebRequest, если это занимает больше 10 секунд, и вернуть код ошибки, если это возможно.

1 Ответ

1 голос
/ 17 февраля 2020

Вы можете использовать параметр Timeout для команды Invoke-WebRequest,

$uri="http://www.SomeUrl.com"
Measure-Command { $request = Invoke-WebRequest -Uri $uri -UseBasicParsing -Timeout 10}

Вы можете закрыть его блоком try / catch, чтобы получить сообщение об ошибке.

try {
    $uri="http://www.SomeUrl.com"
    Measure-Command { $request = Invoke-WebRequest -Uri $uri -UseBasicParsing -Timeout 10 -ErrorAction Stop}
}
catch {
    Write-Output "Timeout occured. Exception: $_"
}

You также можно использовать -Headers @{"Cache-Control"="no-cache"} с Invoke-WebRequest, который не будет кэшировать посещаемые вами страницы.

...