現在のスクリプトの名前を取得する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />スクリプトによって作成されたレポートにスクリプトの名前を追加する方法を見つけようとしています。 これは、ある時点でスクリプト名のテキスト文字列を取得する必要があることを意味します。 スクリプト ファイルのディレクトリは次のとおりです。
sDir=デフォルトのディレクトリを取得();
そしてそのディレクトリ内のファイル:
lFiles=ディレクトリ(sDir)内のファイル;
しかし、現在実行しているスクリプトのファイル名だけを取得する方法は見つかりませんでした。 問題は、後で保存されたレポートを見つけるときに、そのレポートを作成するためにどのスクリプトが実行されたかを正確に知りたいことです。
助けてください。
Re: 現在のスクリプトの名前を取得するありがとう@BioData41
スクリプト内でこれを使用して独自の filePath を参照する限り、ファイルを単独で実行するとき、または Include() を使用して別のスクリプトからスクリプトを実行するときに機能します。
scriptFilePath = Include File List()[1];
Re: 現在のスクリプトの名前を取得する私は JMP にかなり慣れていないので、この関数がどのくらい前から存在しているのかはわかりません。同様の問題を解決しようとしてこの関数を自分で見つけたところですが、「Include File List()」関数は次のリストを返すようです。実行中のスクリプトのコンテキストにあるファイルを開きます。 (ちなみに、Scripting Index やオンライン リソースのほとんどの関数/メソッド/メッセージと同様、この関数の説明は単なる情報提供にすぎません。)
スクリプトによって他のものが開かれる前にこの関数がスクリプトの先頭で実行されると、その時点で返される唯一のパスであるため、そこからスクリプト ファイル パスとスクリプト ファイル名を抽出できるようです。
JMP で開いている他のファイルでテストし、Windows エクスプローラーからスクリプトをダブルクリックして実行しました (スクリプトの先頭に「//!」を含めることにより、スクリプト エディタ ウィンドウを開かずに開いたときにスクリプトが実行されるように設定されています)。 )、そのスクリプトのパスのみが返されます。 開いている他のファイルは返されません。
Re: 現在のスクリプトの名前を取得するまさにそれが私の行いでした。 ありがとう
Re: 現在のスクリプトの名前を取得する質問を投稿する前に、ほぼ同じスクリプト (「For」ループ) を思いつきました。 問題は、返されるスクリプトが現在のものであるかどうかがわからないことです。 たとえば、同じスクリプトが同じフォルダー内の異なるバージョンで保存されている場合、.jsl ファイルのリストを取得します。 同じ場所に同じ名前のスクリプトがいくつ保存されているかに関係なく、現在実行されているスクリプトの名前を取得する必要があります。
Re: 現在のスクリプトの名前を取得するスクリプトがスクリプト ウィンドウから実行される場合、以下の例の直接的なアプローチによりファイル名が得られます。
scr_name = Current Window() << get window title;
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("My Report", Bivariate(Y(:weight), X(:height)), Text Box(scr_name));
Re: 現在のスクリプトの名前を取得するそれを行う方法があるかどうかはわかりません。各スクリプトの先頭に変数を設定します。少し面倒ですが、デバッグに役立ちます。
pname = 「マイスクリプト.JSL」 ;
Re: 現在のスクリプトの名前を取得する使ってみてください:
含まれています(lファイル、 「スクリプト.jsl」 ) ;
これを使用して、「.jmp」を使用して JMP テーブルを見つけましたが、うまくいきました。
または、私の質問が間違っていた場合は、次のようにディレクトリ内のファイルの数をループしてスクリプトファイル名を取得できる別の方法があります。
のために( n = 1 、 n <= N 個のアイテム( lファイル) 、 n ++、
ファイル=lファイル[ n 】 ;
もし(
で終わる(ファイル、 「.jsl」 ) 、/*自分のことをしてください*/;
壊す();
);
);