Published on InterSystems Developer Community (https://community.intersystems.com)

ホーム > $ZF(-100) で実行したコマンドの結果をファイルに出力する方法

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

$ZF(-100) で実行したコマンドの結果をファイルに出力する方法

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

以下の方法で、$ZF(-100) で実行したコマンドの出力を取得することが可能です。
 

★$ZF(-100) での実行でコマンドキーワードを使用する方法:

/STDOUT や /STDERR などの便利なキーワードを指定して、$ZF(-100) でコマンドを実行することが可能です。

USER>write $zf(-100,"/SHELL/STDOUT=c:\temp\result.log/STDERR=c:\temp\error.log","net","use","\\testsrv\public","/user:testuser","password")
2
USER>!type c:\temp\result.log                                                    

USER>!type c:\temp\error.log
システム エラー 1219 が発生しました。
同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続
は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、
再試行してください。
USER>write $zf(-100,"/SHELL/STDOUT=c:\temp\result.log/STDERR=c:\temp\err.log","netstat","-anp","tcp")
0
USER>!type "c:\temp\result.log"
アクティブな接続
 
  プロトコル  ローカル アドレス      外部アドレス           状態
  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         0.0.0.0:135            0.0.0.0:0              LISTENING
  :
USER>!type "c:\temp\err.log"
USER>

コマンドキーワードについては、以下のドキュメントをご覧ください。
$ZF(-100) で指定できる便利なキーワード
※ /STDOUT と /STDERR に同じファイルを指定した場合、両方のタイプのデータがそのファイルに書き込まれます。


★標準エラー出力(2) を 標準出力(1) へリダイレクトする方法:

以下の方法で、標準エラー出力(2) を 標準出力(1) へリダイレクトし、さらにコマンドの 標準出力 を ファイル(result.log) へ出力する方法が使用できます。

USER>Set st = $ZF(-100, "/shell", "net", "use", "\\server1\Public", "/user:name", "password", ">result.log", "2>&1")
 
USER>write st    // 戻り値が0(成功)以外の時、ログを見て原因を調査してみる
2


上記コマンドの場合、実行したネームスペースのデフォルトデータベースのフォルダに result.log が出力されます。
内容は以下のような標準出力が記録されています。

/* result.log */

システム エラー 1219 が発生しました。

同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。



enlightened【ご参考】
$ZF(-100) で指定できる便利なキーワード

#ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health

ソースURL:https://jp.community.intersystems.com/post/zf-100-%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%9F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E7%B5%90%E6%9E%9C%E3%82%92%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95