2017-07-04 80 views
0

私はPowerBuilder 12.5プログラムで作業しています。これはxmlからdocxへのコンバータです。これは、XMLファイルと画像を取り、それらをフォルダに積み重ねます。これは.docxファイルとして圧縮されている必要があります。Powerbuilder 12.5 - windowsコマンドを実行する

私はWindowsのcmdコマンドzip -r 'path'.docx *でこれを行うことができます。これはMS Wordで開かれた単語ファイルを生成します。 'path'は、ファイルエクスプローラにファイルを保存する場所で、ファイル名が動的に生成されます。

このコマンドはPowerBuilderからどのように実行できますか。問題は、もし私がrun()関数を実行すると、プリセットされたパス(c:\ Users \ ME \

)でcmdが開きますが、それは動作していません。それはc:\ Users \ MEフォルダを圧縮します。

もっと良いアイデアを教えてください。

答えて

0

あなたは自分の外部関数でSetCurrentDirectoryAを宣言し、前にカレントディレクトリを設定しようとすることができます:それはLinuxのターミナルで可能である場合

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

これで、Run()関数はWindowsのcmdを開きますが、Oracle \ db_homeフォルダを指しています。私はcmd.exeをwindows \ system32からpowerbuilderプロジェクトフォルダにコピーしようとしました。 アイデア – user6371567

0

私はcmdをウィンドウに慣れていない、しかし、それがで可能です窓も。

完成したコードは、それは魔法のように動作だけで、解析された文字列と実行()コマンド

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) 

を使用して、IKEこの見えます。あなたの誓いに感謝します。

関連する問題