1

我在下面有一段简单的代码,它在98%的时间内成功运行了一个 exe。PowerShell 等待FineCmd.exe关闭使用| Out-Null.

注意:FineCmd.exe运行FineReader.exe

但是,有时会FineReader.exe显示一个简单的错误消息框来停止 for 循环。一旦用户手动单击 OK 并关闭FineReader.exe,PowerShell 将继续执行 for 循环。

如何让 PowerShell 执行以下操作:

  1. 意识到发生了错误FineReader.exe
  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
}
4

0 回答 0