Как добавить исключение для ожидания команды закрытия процесса в PowerShell? - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть простой фрагмент кода, который успешно запускает exe 98% времени.PowerShell ожидает закрытия FineCmd.exe, используя | Out-Null.

Примечание: FineCmd.exe выполняется FineReader.exe

Однако иногда FineReader.exe отображает простую ошибкуокно сообщения, которое останавливает цикл for.Когда пользователь вручную нажимает кнопку ОК и закрывает FineReader.exe, PowerShell продолжает цикл for.

Как заставить PowerShell:

  1. понять, что в * 1020 произошла ошибка*
  2. (принудительно) закрыть FineReader.exe
  3. повторить итерацию цикла, где произошла ошибка?

Весь код приведен ниже:

$path = "C:\OCR\process.txt"
$files = Get-Content $path
[System.Collections.ArrayList]$FPaths = $files
cd "C:\Program Files (x86)\ABBYY FineReader 12"

for ($i = $FPaths.count - 1; $i -ge 0; $i--) {
.\FineCmd.exe $FPaths[$i] /lang Mixed /out $FPaths[$i] /quit | Out-Null
$FPaths.RemoveAt($i)
$Date = Get-Date -Format g
Write-Host $i "Files to go at " $Date
$FPaths | Out-File $path
}
...