2

「-batch」スイッチを使用して shell() を使用して画像分析のために ImageJ を呼び出す R スクリプト (他の誰かが作成) があります。

shell("C:\\ImageJ\\imagej.exe -batch [args]")

分析は実際に開始されますが、R は分析が完了する前に次の行を実行し続けているようです。そのため、ファイルが作成される前にいくつかのファイルにアクセスしようとします。

デバッガーのブレークポイントで実行し、完了するまで待ってから続行すると、すべて正常に動作します。しかし、全体として実行しようとすると、空のフォルダーを読み取ったためにエラーが発生します。

shell() コマンドには、デフォルト値が「TRUE」のオプション引数「wait」がありますが、その完了ではなく ImageJ の起動は、シェルの「終了」と見なされ、R が続行される理由だと思います。では、ImageJ が完了するまで R を強制的に待機させるにはどうすればよいでしょうか? whileループで作成されたファイルの数を確認できることはわかっているので、すべてのファイルが作成されるまで実質的に保持されます。しかし、私はむしろ、よりエレガントで危険性の低いソリューションを持っています。ありがとう!

4

0 に答える 0