2017-07-04 202 views
0

我正在使用Powerbuilder 12.5程序,它是一个xml到docx转换器。它需要xml文件和图片,并将它们堆叠到一个文件夹中,该文件夹需要作为.docx文件进行压缩。Powerbuilder 12.5 - 运行Windows命令

我可以用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文件夹。

有什么更好的点子?

回答

0

你可以尝试之前设置当前目录,只是声明SetCurrentDirectoryA在外部功能:

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

现在我这样做了,Run()函数将打开Windows cmd - 但它指向Oracle \ db_home文件夹。我确实尝试将cmd.exe从windows \ system32复制到powerbuilder项目文件夹 - 没有运气。 任何想法? – user6371567

0

我不习惯在cmd窗口,但如果是在Linux终端可能,有可能在窗户也是。

完成的代码看起来IKE在此,只用解析字符串和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) 

它的工作原理就像一个魅力。谢谢大家的提示。