如果在 powershell 中花费太多时间,则退出命令

Exit from a command if it takes too much time in powershell

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

在上面的 powershell 脚本中,如果花费的时间超过 10 秒,我如何退出 Invoke-WebRequest,如果可能,return 一个错误代码。

您可以使用 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: $_"
}

您还可以将 -Headers @{"Cache-Control"="no-cache"}Invoke-WebRequest 一起使用,这样不会缓存您正在访问的页面。