本範例使用運行程式讀取 Windows 登錄以取得 JMP 最近檔案清單中的檔案。
temp=runprogram(executable("reg"),options({"query","\["HKCU\Software\SAS Institute Inc.\JMP\Recent\Files"]\"}),readfunction("text"));
names = {};
// typical line: " File7 REG_SZ C:\Users\v1\Desktop\Nanami01.jrn"
patmatch(temp,patrepeat(patregex("\s+File\d+\s+REG_SZ\s+")+patbreak("\!n\!r")>>path+pattest(insertinto(names,path);1)));
show(names,nitems(names))名稱 = {"F:\FileSnapper\Additional.jsl", "F:\FileSnapper\makeAddin.jsl", "F:\rectangula\virusmap3.jsl", "F:\rectangula\virusmap2.jsl", "F: \turtle\drawing.jmpprj", "F:\AVI\video.jmpprj", "C:\Users\v1\Desktop\Nanami01.jrn", "F:\chess\chessPlay.jsl", ...
這匹配函數會跳過前導、不匹配的文本,然後將文件新增到名字只要模式重複。 如果註冊表包含一些其他值(我不知道為什麼會這樣),您可能必須使模式更加複雜才能跳過未知鍵並繼續。
在命令視窗中執行 reg query 命令如下所示

讀取函數("text") 將相同的文字傳回到溫度多變的。
謝謝! 它比我嘗試過的另一種更脆弱的方法更簡單。
我也看了Windows 10 最近的檔案和資料夾:指向 JSL 腳本中的「快速存取」檔案和資料夾清單?@菲爾_凱這讓我接近類似的信息,但是對於 .LNK 文件,不知何故,指向實際文件。 就我而言,我需要目標檔案的路徑,但我不知道如何使用 JSL 從 .LNK 取得路徑。
嗯,這非常酷而且緊湊。我可以看到這對於建立用於文件選擇的自訂對話框很有用。