COS ZF Command返回服务

时间:2018-01-11 16:31:48

标签: intersystems-cache intersystems-ensemble

在COS中,我想返回具有特定名称的所有服务。在命令中运行命令sc queryex type = service state = all |找到/ i“BFE”,它将显示服务名称。在COS中有$ ZF可以接受一个命令,但它返回0不确定我做错了什么。

USER>s cmd = "sc queryex type= service state= all | find /i ""BFE"""

USER>W cmd
sc queryex type= service state= all | find /i "BFE"
USER>set rc=$zf(-2,cmd)

USER>W rc
0

2 个答案:

答案 0 :(得分:2)

在Caché中,我们可以使用函数$zf调用外部命令,其中第一个参数可以是-1-2。在$zf(-1)等待的情况下,命令将完成,结果将是此命令的退出代码。 $zf(-2)不等待,因此如果成功创建了生成的进程,则返回0,如果没有,则-1$zf(-1)。在您的情况下,您应该使用null,因为您希望立即获得一些结果。但是你必须将任何输出重定向到一些临时文件并在调用后读取它。

答案 1 :(得分:0)

我还要补充一点,$ZF(-1)$ZF(-2)函数在最新版本中已过时。同时,您可以简单地将>> resultfile.txt附加到arg,然后查看文件。但是,我将使用$ZF(-1)而不是$ZF(-2),后者将命令作为子进程异步运行。