記事
Megumi Kakechi · 2021年3月2日 2m read

$ZF(-100) で実行したコマンドの出力を取得する方法

これは InterSystems FAQ サイトの記事です。
 

$ZF(-100) では実行したコマンドの出力を取得することはできませんが、代わりにコマンド・パイプ デバイスを使用する方法があります。

詳細は、以下ドキュメントをご参照ください。

コマンド・パイプ デバイスを使用する方法について
 

こちらを %File クラスで使用した例が以下になります。

USER>kill

USER>set cmd=##class(%File).%New("netstat -anp tcp")

USER>write cmd.Open("rq")
1
USER>while 'cmd.AtEnd { write !,cmd.ReadLine() }
アクティブな接続
  プロトコル  ローカル アドレス          外部アドレス        状態
  TCP    0.0.0.0:23             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
(中略)
  TCP    192.168.172.1:139      0.0.0.0:0              LISTENING
USER>

 

※注意※
$ZF(-1)および$ZF(-2)には、セキュリティ上の脆弱性があり、その使用が推奨されておりません。
代替の機能として$ZF(-100)が用意されておりますので、そちらをご使用ください。
$ZF(-100)の詳細は、以下の関連トピックをご参照下さい。

$ZF(-100)の戻り値に -1 が返って実行できません。なぜですか?

$ZF(-100)の使用方法を教えてください

 

00
0 0 0 15
Log in or sign up to continue