【问题标题】:Powerbuilder 12.5 - run windows commandPowerbuilder 12.5 - 运行 windows 命令
【发布时间】:2017-07-04 08:45:42
【问题描述】:

我正在开发一个 Powerbuilder 12.5 程序,它是一个 xml 到 docx 转换器。它获取 xml 文件和图片并将它们堆叠在一个文件夹中,该文件夹需要压缩为 .docx 文件。

我可以使用 windows cmd 命令zip -r 'path'.docx * 来做到这一点,它会生成一个 Word 文件,该文件在 MS Word 中打开。 'path' 是用户在文件资源管理器中保存文件的位置,文件名是动态生成的

如何从 Powerbuilder 运行此命令。问题是,如果我运行 run() 函数,它会在预设路径中打开 cmd,即 c:\Users\ME\

我确实尝试过CD 'new_path && zip -r new_path.docx *,但它不起作用。它会压缩 c:\Users\ME 文件夹。

有更好的想法吗?

【问题讨论】:

    标签: cmd powerbuilder


    【解决方案1】:

    您可以尝试设置当前目录,只需在您的外部函数中声明 SetCurrentDirectoryA :

    FUNCTION LONG SetCurrentDirectoryA(REF STRING curdir) LIBRARY "Kernel32.dll"
    

    【讨论】:

    • 现在我这样做了,Run() 函数会打开 windows cmd - 但是它指向 Oracle\db_home 文件夹。我确实尝试将 cmd.exe 从 windows\system32 复制到 powerbuilder 项目文件夹 - 没有运气。有什么想法吗?
    【解决方案2】:

    我不习惯windows cmd,但是如果在linux终端可以,那么在windows也是可以的。

    完成的代码看起来像这样,只使用解析过的字符串和 run() 命令

    ls_exec = "cmd /c cd /d "+ls_folder + " && zip -r "+ ls_folder+".docx * &&   cd /d "+ls_folder_1u   + " && rmdir "+ls_file+" /s /q"
    run( ls_exec)
    

    它就像一个魅力。谢谢大家的建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多