介绍
只需编写少量脚本,即可轻松创建各种有趣的实用程序和工具,以使用 JMP 节省时间。 有时,这些工具可以帮助您节省工作分析部分的时间,有时,就像这个例子一样,它们可以帮助您节省工作中更平凡的方面的时间。 我最近看到这个优秀的博客经过@Craige_Hales并想知道是否可以使用 JMP 制作一个实用程序来显示目录树图,这是查看哪些文件占用硬盘驱动器空间的便捷方法。 事实证明 JMP 可以轻松做到这一点。 因此,虽然有很多免费软件实用程序可以制作目录树形图,但在 JMP 中自己制作目录树图可能是学习脚本编写的一种有趣方式。 请继续阅读,了解它实际上是多么容易。

不要浪费时间编写 JMP 可以为您编写的代码
在 JMP 中编写脚本时要记住的第一件事是,它已经在后台为几乎所有内容编写了脚本。 因此,您所需要做的就是将 JMP 已提供的功能串联起来。 有时,您可能仍需要更深入地挖掘。 下面显示的实用程序将一些实际编码与 JMP 已经执行的操作混合在一起。
第 1 步:在 JMP 中执行
对于此实用程序,我们需要用户选择的文件夹中的文件列表(以及任何子文件夹中的任何文件)以及每个文件的大小。 一旦我们有了它,我们就需要每个文件大小的树形图。 JMP 拥有通过多文件导入和图形生成器满足这两种需求的工具。 以下是无需任何脚本即可进行第一个概念验证的步骤:
1、获取数据:选择文件...导入多个文件。 我选择了JMP安装目录,这是每个人都应该有的。 选择“包括子文件夹”按钮后,右键单击中间的表并选择“制作为数据表”。


2. 制作树形图:启动图形生成器,然后将文件名拖到 Y 区域,将文件大小拖到大小区域。 从顶部选择树形图;接下来从控制面板的“布局”下拉列表中选择“方形化”。

第 2 步:通过脚本将各个部分组合在一起
现在我们已经在没有编写脚本的情况下创建了该实用程序,我们只需将其作为脚本放在一起即可。 以下是我们需要什么以及如何去做的一些概述:
- 选择文件夹:简单的。 从 Pick Directory() 命令的脚本索引中复制/粘贴。
- 从多个文件导入中获取表:可能很棘手。 我们需要告诉平台将其自身的一部分导出为数据表。
- 制作树形图:简单的。 从已经制作的图表中复制/粘贴。
使用 GUI 时,以前只需要执行两个步骤,现在需要执行三个步骤。 然而,选择文件夹的新步骤并不困难。 查看脚本索引条目选择目录命令,我们可以将其中的内容复制并粘贴到我们自己的脚本中,稍微修改脚本以存储在变量中选择的目录文件夹。

这是到目前为止我们的脚本,第 1 步已完成(开头的注释提醒我们三年后这一切是关于什么的):
//script to make treemap of directory structure
Names Default To Here( 1 );
folder = Pick Directory( "Select a directory" );
接下来的步骤有点复杂,不过学完就简单了如何编写报表层脚本(一个公然的优秀和免费的插件JMP 脚本课程)。 本质上,我需要做的是通过脚本从“多文件导入”窗口中间导出表,而不是通过右键单击导出它。 为此,我通过 GUI 启动“导入多个文件”平台,使用 GUI 获取该平台的脚本,然后使用 GUI 找出 JMP 调用中间表的内容。 这将采取三个步骤:
- 获取导入多个文件的脚本:选择“文件...导入多个文件”,选择一个文件夹,选择“包括子文件夹”,然后按“将脚本保存到脚本”窗口按钮。 现在我们有了一个脚本,可以将其复制/粘贴到主脚本的末尾。
- 修改导入多个文件脚本:将顶部附近引用的文件夹替换为单词文件夹并改变导入数据部分从末尾到创建窗口,因为我们不想实际导入任何数据。 添加临时温=到脚本这部分的开头,以便我们稍后可以参考此窗口。 经过这些调整后,本部分的脚本如下所示:
tempwin = Multiple File Import(
<<SET folder=""></SET>
- 通过脚本导出数据表,而不是通过在 GUI 中右键单击:我们知道坦温温现在指的是整个“导入多个文件”窗口,其中包含文件大小表,但我们尚不知道 JMP 对该表有何称呼。 为了找到答案,我们需要在看到“编辑”菜单的地方右键单击表格本身(靠近边缘工作;表格中间显示表格的上下文菜单而不是“编辑”菜单)。 选择编辑...显示树结构。 然后,在“树结构”窗口中单击条目,直到我们要引用的表在 MFI 窗口中突出显示,如下所示。

这意味着 JMP 将此表称为 TableBox(1)。 现在我们知道了这一点,我们可以告诉 JMP 使用该表执行某些操作,例如“生成数据表”,并且可以通过将下面的行添加到脚本中来完成此操作。
dtFiles = tempwin[Table Box(1)] << Make into data table;
现在,剩下的就是从我们已经制作的图形生成器中复制脚本(红色三角形...保存脚本...到剪贴板),将其粘贴到脚本的末尾,然后就完成了! 我们的整个脚本如下所示:
Names Default To Here( 1 );
folder = Pick Directory( "Select a directory" );
tempwin = Multiple File Import(
<<SET folder=""></SET>
3. 测试和改进
至此,脚本按预期工作,我们就可以完成了。 但我们可以做一些事情来使脚本变得更好。 首先,“多文件导入”部分有很多我们可以删除的额外行。 其次,确定我们想要为平台使用哪个数据表是一个很好的做法,因此添加dt文件 <<在图形生成器之前帮助确保我们在稍后运行此脚本时打开多个数据表时不会遇到问题。 一旦我们进行了这些更改,脚本看起来更短并且更容易掌握——它实际上只是几个简单的步骤串在一起:
Names Default To Here( 1 );<BR />
folder = Pick Directory( "Select a directory" );
tempwin = Multiple File Import(
<<SET folder=""></SET>
结论
以下是一些值得列出的关键要点:
- JMP 会在编写脚本时为您完成大部分工作。
- 从 JMP 已有的窗口获取数据是将 JMP 扩展为使生活更轻松的工具的好方法。
- 也许最重要的是,您不需要停在这里。
该工具可以轻松修改以添加打开所选文件/文件夹的方式,按日期着色以查找大型旧文件,按文件夹/子文件夹组织,或任何数量的其他修改和改进。