循環瀏覽目錄中的文件夾大家好,
我有一個腳本可以處理我從循環裝載機獲得的一組數據。 但是,我從這台機器收到了一批數據,這些數據被組織到包含我想要運行腳本的 .txt 文件的文件夾中。 有沒有一種方法可以將腳本文件粘貼到包含所有包含 .txt 文件的子文件夾的父文件夾中,並讓它在每個文件夾中運行(打開文件夾中的 .txt 文件並在每個 .txt 上運行腳本按原樣歸檔)?
我現在已經將腳本設置到可以返回腳本所在的當前文件路徑的位置,方法是使用 ,現在,我必須明確定義(輸入在腳本中)打開數據文件的文件名。
使用 JMP 17。
提前致謝!
腳本回复:循環瀏覽目錄中的文件夾Multiple File Import() 函數是一個極好的快捷方式,因為它返回一個文件列表。 我建議先通過 GUI 進行導入,然後復制腳本並根據需要進行修改。 下面的偽腳本:
m = Multiple File Import (lots of settings);
lstFiles = m << import data;
for each ({filename}, lstFiles,
//your script for each file
);
回复:循環瀏覽目錄中的文件夾如果 MFI 沒有滿足您的需求,FilesInDirectory(...) 會返回一個文件和目錄列表。 isFile() 和 isDirectory() 以及 FileCreationDate() 和 FileModificationDate() 可以幫助您獲得所需的內容。 (近似名稱,檢查腳本索引。)我思考FilesInDirectory 確實不是返回目錄時遞歸的使用選項。 列表中可能有不是文件或目錄的項目,因此請使用最有意義的測試。 但如果 MFI 會這樣做,您將擁有一個更簡單的 JSL 腳本。
回复:循環瀏覽目錄中的文件夾感謝您的回复 - 很快就會嘗試!
回复:循環瀏覽目錄中的文件夾感謝您的提示!
回复:循環瀏覽目錄中的文件夾傑德,
似乎多文件導入數據正在工作,但是,我無法使“for each”功能正常工作。 它似乎沒有遍歷使用多文件導入創建的文件列表——我從我的腳本中得到了 33 次相同的返回值(33 是文件列表中的項目數)。
回复:循環瀏覽目錄中的文件夾擴大@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
);
將filename複製到dt只是為了明確list元素是什麼。 你可能會 dt<