循环浏览目录中的文件夹大家好,
我有一个脚本可以处理我从循环装载机获得的一组数据。 但是,我从这台机器收到了一批数据,这些数据被组织到包含我要在其上运行脚本的 .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<