0

我开发了一个解决方案,其中 PL/SQL Oracle API 生成需要打印的 PDF(包括完整文件路径)的文件名(参数 1),然后使用 DBMS_SCHEDULER 传递该文件名和打印机名称(参数 2 ) 到以下批处理文件:

    "C:\Program Files (x86)\Adobe\Acrobat 4.0\Reader\AcroRd32.exe" /t %1 %2

但是,有时传递给批处理文件的文件名不存在。因为该文件不存在 Adob​​e 继续运行(在后台)。这会阻止 API 再次执行,直到有人手动结束 Windows 进程,因为 DBMS 作业已连接到 Adob​​e 实例。

不幸的是(除非 Oracle 中有办法检查文件是否存在于目录中)我无法在 Oracle 端解决这个问题,因此我需要在 Windows 端解决它。

因此,是否有任何其他逻辑可以添加到批处理文件或任何其他脚本中,以验证文件是否存在,如果文件不存在,则结束该过程。该解决方案必须高效,因为 PDF 文件的打印对时间很敏感。

如果有人确实有针对此问题的 Oracle 端解决方案,那么我将很乐意提供相关代码。

提前致谢。

4

1 回答 1

0

不启动 Acrobat 比尝试关闭它更容易。您可以使用以下IF EXIST命令检查批处理文件中的文件是否存在:

@IF EXIST %1 (
    "C:\Program Files (x86)\Adobe\Acrobat 4.0\Reader\AcroRd32.exe" /t %1 %2
) ELSE (
    REM optionally report error?
)

有一些方法可以从 Oracle 中检查文件,但这可能更简单,因为您已经有一个批处理文件,除非您想在此过程的早期测试和报告错误。

于 2013-04-17T09:18:14.663 回答