ディレクトリ内のフォルダーを循環するこんにちは、みんな、
循環読み込みマシンから取得した一連のデータを処理するスクリプトがあります。 ただし、このマシンからは、スクリプトを実行する .txt ファイルを含むフォルダーに整理されたデータのバッチを受信します。 .txt ファイルを含むすべてのサブフォルダーを含む親フォルダーにスクリプト ファイルを貼り付け、各フォルダーでスクリプト ファイルを実行する方法はありますか (フォルダー内の .txt ファイルを開いて、各 .txt でスクリプトを実行します)そのままファイルします)?
を使用して、スクリプトが配置されている現在のファイル パスを返すことができるようにスクリプトをセットアップしました。現時点では、明示的に定義する必要があります (スクリプト内) データ ファイルを開くためのファイル名。
JMP17を使用します。
前もって感謝します!
コンテンツの構成Re: ディレクトリ内のフォルダーを循環する拡大するために@Jed_Campbellちょっと例をあげますと、
for each ({filename}, lstFiles,
//your script for each file
dt = filename; // it isn't really a name, it is a data table handle
... do something with this open data table that dt points to
close( dt, "nosave" ); // if you are done with it
);
ファイル名を dt にコピーするのは、リスト要素が何であるかを明確にするためです。 dt<
Re: ディレクトリ内のフォルダーを循環するジェド、
複数ファイルのインポートデータは機能しているようですが、「for each」機能を機能させることができません。 複数ファイルのインポートで作成されたファイルのリストを反復処理していないようです。スクリプトから同じ戻り値を 33 回取得しています (33 はファイルのリスト内の項目の数です)。
Re: ディレクトリ内のフォルダーを循環するヒントをありがとう!
Re: ディレクトリ内のフォルダーを循環するご返信ありがとうございます。すぐに試してみます。
Re: ディレクトリ内のフォルダーを循環するMFI が必要な機能を実行しない場合は、FilesInDirectory(...) がファイルとディレクトリのリストを返します。 isFile()、isDirectory()、FileCreationDate()、FileModificationDate() は、必要なものを取得するのに役立つ場合があります。 (おおよその名前。スクリプト索引を確認してください。)考えるFilesInDirector は行いますない次の場合にディレクトリを返します再帰的オプションが使用されます。 リストにはファイルまたはディレクトリではない項目が含まれる可能性があるため、最も意味のあるテストを使用してください。 しかし、MFI がそれを行う場合は、より単純な JSL スクリプトが作成されます。
Re: ディレクトリ内のフォルダーを循環するMultiple File Import() 関数は、ファイルのリストを返すため、このための素晴らしいショートカットです。 最初に GUI を介してインポートを実行し、次にスクリプトをコピーして、必要に応じて変更することをお勧めします。 以下の疑似スクリプト:
m = Multiple File Import (lots of settings);
lstFiles = m << import data;
for each ({filename}, lstFiles,
//your script for each file
);