介紹
只需編寫少量腳本,即可輕鬆創建各種有趣的實用程序和工具,以使用 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 擴展為使生活更輕鬆的工具的好方法。
- 也許最重要的是,您不需要停在這裡。
該工具可以輕鬆修改以添加打開所選文件/文件夾的方式,按日期著色以查找大型舊文件,按文件夾/子文件夾組織,或任何數量的其他修改和改進。