首页 > 解决方案 > 如何使用正在进行的 INPUT/OUTPUT 运行 .exe/.bat 文件 4GL

问题描述

我尝试通过 Progress4GL 中的 wkhtmltopdf.exe 创建 PDF 文件。我已经编写了一个将 html 文件作为 INPUT 下载的程序。

procedure downloadhtml:

    define input parameter i-benutzer as character  no-undo.

    
    define variable zw-path         as character no-undo.
    define variable h-uhrzeit       as character no-undo.
    define variable h-text          as character no-undo.    
    

    h-uhrzeit = string(time, "HH:MM:SS").
    h-uhrzeit = replace(h-uhrzeit, ":", "."). 
   
    h-text = '<div style="color:red;">I am a html file</div>'.
   
    
    find database.table
         where database.table.man     = "xxx"
         and   database.table.krg     = "X-2540.w"
         and   database.table.user    = "_PPS"
         and   database.table.opzt    = "_PPN"
         no-lock no-error.
    if available database.table then do:
       zw-path = table.field.
    end.

 
    OUTPUT TO VALUE(zw-path + "Name_" + string(today,"99.99.9999") + "_" + h-uhrzeit + "_" + i-benutzer + ".html").
  
    
        put unformatted h-text skip.
   
    
    output close.

end procedure.

它将 html 文件下载到此目录:

K:\K11\WEB\PDF\Name_01.03.2021_09.17.25_xx.html

wkthmltopdf.exe 有 1 个输入和 1 个输出目录。CMD 控制台中的结构如下所示 --> :: [.exe] [INPUT DIRECTORY] [OUTPUT DIRECTORY]

如果我使用这些命令手动运行 cmd 控制台,它会完美运行

cd C:\Program Files (x86)\wkhtmltopdf\
wkhtmltopdf.exe K:\K11\WEB\PDF\Name_01.03.2021_09.17.25_xx.html K:\K11\WEB\PDF\Name_01.03.2021_09.17.25_xx.pdf

我的问题是:如何运行具有动态(名称取决于日期和时间)输入输出变量正在进行的 .exe 文件?

我发现了一个在progress4GL中运行.exe文件的命令

os-command(wkhtmltopdf.exe) 

但是如何在progress4gl 中将输入和输出变量/目录放入.exe 文件中?

标签: batch-fileexewkhtmltopdfopenedgeprogress-4gl

解决方案


就像是

    OS-COMMAND VALUE (SUBSTITUTE ("cd C:\Program Files (x86)\wkhtmltopdf\wkhtmltopdf.exe K:\K11\WEB\PDF\Name_&1.&2.&3.html",
                                  DAY (TODAY),
                                  MONTH (TODAY),
                                  YEAR (TODAY))) .
             

推荐阅读