Используя базовую конструкцию:
try
{
Do-Something
}
catch
{
Write-Output "Something threw an exception"
}
Можно ли продолжать пробовать что-нибудь до тех пор, пока это не удастся?Возможно, используя цикл while, как это:
$Timeout = 60
$timer = [Diagnostics.Stopwatch]::StartNew()
$t = 0
while (($timer.Elapsed.TotalSeconds -lt $Timeout) -and ($t -ne 1))) {
Start-Sleep -Seconds 1
try
{
Do-Something
$t = 1
}
catch
{
Write-Output "Something threw an exception"
}
}
$timer.Stop()
Здесь я использую таймер, чтобы убедиться, что PowerShell не работает бесконечно.Он должен продолжать попытки, пока try
не будет успешным и $t = 1
не будет выполнен.Однако, это терпит неудачу приблизительно через 2 секунды.Пожалуйста, помогите.
В частности, Do-Something:
(Get-Process -Name FineReader).MainWindowHandle
Я бы хотел, чтобы код продолжал попытки до тех пор, пока не существует FineReader
, и он может получить MainWindowHandle
.