Dieses Beispiel verwendet Programm ausführen um die Windows-Registrierung zu lesen, um die Dateien in der JMP-Liste der letzten Dateien zu erhalten.
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))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", ...
Der Patmatch Funktion überspringt führenden, nicht übereinstimmenden Text und fügt dann Dateien hinzu Namen solange sich das Muster wiederholt. Wenn die Registrierung einige andere Werte enthielt (ich weiß nicht, warum), müssen Sie das Muster möglicherweise ausgefeilter gestalten, um unbekannte Schlüssel zu überspringen und fortzufahren.
Das Ausführen des Befehls reg query in einem Befehlsfenster sieht folgendermaßen aus

Lesefunktion ("Text") gibt denselben Text an die zurück Temp Variable.
Danke! Es ist einfacher als ein anderer Ansatz, den ich ausprobiert habe und der zerbrechlicher war.
hab ich mir auch angeschaut Windows 10 Recent Files and Folders: Verweis auf die Datei- und Ordnerliste „Quick Access“ in einem JSL-Skript?@Phil_Kay was mich ähnlichen Informationen nahe brachte, aber für .LNK-Dateien, die irgendwie , zeigen Sie auf die eigentlichen Dateien. In meinem Fall brauche ich den Pfad zur Zieldatei, und ich weiß nicht, wie ich den Pfad von einer .LNK-Datei mit JSL erhalten kann.
Nun, das ist sehr cool und kompakt.Ich könnte sehen, dass dies beim Erstellen eines benutzerdefinierten Dialogfelds für die Dateiauswahl nützlich ist.