0

在 Unix 服务器上,我通过进程调度程序运行应用程序引擎。在其中,我试图在“Exec”pplcode 函数中使用“zip”Unix 命令。

但是,我只得到错误

PS_Exec(P): Error execution batch command with reason: No such file or directory (2) 我已经尝试了几种方法。我认为最合乎逻辑的方法是将目录更改回根目录,然后更改为指定目录,以便我可以轻松使用 zip 命令,例如以下...

Exec("cd / && cd /opt/psfin/pt850/dat/PSFIN1/PYMNT && zip INVREND INVREND.XML");


1643 12.20.34 0.000048 72: Exec("cd /opt/psfin/pt850/dat/PSFIN1/PYMNT");
1644 12.20.34 0.001343 PS_Exec(P): Error executing batch command with reason: No such file or directory (2)

我什至尝试过以下......只是为了看看在 Exec 内是否有任何工作......

Exec("ls");

果然,它给出了同样的错误。

现在,你们中的一些人可能想知道,与进程调度程序关联的帐户实际上是否对服务器上的这个特定目录路径具有权限?好吧,我能够毫无问题地创建上一个命令中给出的 xml 文件。

我似乎无法通过 Exec 发布 Unix 命令来修改它。我想知道这是否是来自unix服务器的权限错误,与运行进程调度程序的操作员ID有关。但是,鉴于它可以在那里创建和写入文件,我无法理解为什么 Exec 命令会遇到任何阻力......只是我在黑暗中的直觉......

任何帮助将不胜感激!!!

谢谢,弗林

4

1 回答 1

1

不确定您是否仍有问题,但在您的 Exec 代码中,添加可选%FilePath_Absolute常量应该会有所帮助。当该常量被取消时,PS 会自动为所有命令添加前缀<PS_HOME>。不过,您必须使用此标志指定绝对路径。我已将命令更改为应该可以使用的命令。

Exec("zip /opt/psfin/pt850/dat/PSFIN1/PYMNT/INVREND /opt/psfin/pt850/dat/PSFIN1/PYMNT/INVREND.XML", %FilePath_Absolute);

PeopleBooks的文档有时有点混乱,但在这种情况下它解释得很好。您始终可以将绝对位置存储在变量中,并将其作为命令的前缀,这样您就不必继续输入/opt/psfin/pt850/dat/PSFIN1/PYMNT/.

于 2014-09-30T17:13:01.680 回答