Rufen Sie den Namen des aktuellen Skripts ab<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich versuche, einen Weg zu finden, den Namen eines Skripts zu dem vom Skript erstellten Bericht hinzuzufügen. Das bedeutet, dass ich irgendwann eine Textzeichenfolge des Skriptnamens erhalten muss. Ich kann das Verzeichnis der Skriptdatei:
sDir=Standardverzeichnis abrufen();
und die Dateien in diesem Verzeichnis:
lFiles=Dateien im Verzeichnis(sDir);
Aber ich habe keinen Weg gefunden, nur den Dateinamen zu bekommen, den ich bekomme, ist von dem Skript, das ich gerade ausführe. Das Problem ist, dass ich beim späteren Auffinden eines gespeicherten Berichts genau wissen möchte, welches Skript ausgeführt wurde, um diesen Bericht zu erstellen.
Bitte helfen Sie.
Betreff: Namen des aktuellen Skripts abrufenIch bin mir nicht sicher, wie lange es diese Funktion schon gibt, da ich ziemlich neu bei JMP bin und diese Funktion gerade selbst gefunden habe, als ich versuchte, ein ähnliches Problem zu lösen, aber es scheint, dass die Funktion "Include File List()" eine Liste von zurückgibt Öffnen Sie Dateien, die sich im Kontext des ausgeführten Skripts befinden. (Übrigens ist die Beschreibung dieser Funktion nur informativ, wie es bei den meisten Funktionen/Methoden/Meldungen im Scripting-Index oder in Online-Ressourcen der Fall ist.)
Es scheint, dass, wenn diese Funktion am Anfang des Skripts ausgeführt wird, bevor etwas anderes vom Skript geöffnet wird, der Skriptdateipfad und der Skriptdateiname daraus extrahiert werden können, da dies der einzige Pfad ist, der an diesem Punkt zurückgegeben wird.
Als ich es mit anderen in JMP geöffneten Dateien getestet und das Skript ausgeführt habe, indem ich im Windows Explorer darauf doppelgeklickt habe (wobei das Skript so eingestellt ist, dass es beim Öffnen ausgeführt wird, ohne ein Skript-Editor-Fenster zu öffnen, indem ich "//!" am Anfang des Skripts einfüge ), bekomme ich nur den Pfad dieses Skripts zurückgegeben. Keine der anderen geöffneten Dateien wird zurückgegeben.
Betreff: Namen des aktuellen Skripts abrufenGenau das habe ich getan. Vielen Dank
Betreff: Namen des aktuellen Skripts abrufenIch habe mir fast das gleiche Skript (die "For"-Schleife) ausgedacht, bevor ich meine Frage gestellt habe. Das Problem dabei ist, dass ich nicht weiß, ob das zurückgegebene Skript das aktuelle ist. Wenn zum Beispiel dasselbe Skript in verschiedenen Versionen im selben Ordner gespeichert ist, würde ich eine Liste von .jsl-Dateien erhalten. Ich muss den Namen des aktuellen Skripts abrufen, das ausgeführt wird, unabhängig davon, wie viele ähnlich benannte Skripts möglicherweise am selben Ort gespeichert sind.
Betreff: Namen des aktuellen Skripts abrufenWenn das Skript von einem Skriptfenster aus ausgeführt wird, erhalten Sie beim direkten Zugriff im folgenden Beispiel den Dateinamen.
scr_name = Current Window() << get window title;
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("My Report", Bivariate(Y(:weight), X(:height)), Text Box(scr_name));
Betreff: Namen des aktuellen Skripts abrufenWeiß nicht, ob es dafür eine Möglichkeit gibt.Ich setze eine Variable am Anfang jedes Skripts.Ein bisschen mühsam, aber hilft beim Debuggen.
pname = "Mein Skript.JSL" ;
Betreff: Namen des aktuellen Skripts abrufenVersuchen Sie es mit:
Enthält (lDateien , "script.jsl" ) ;
Ich habe dies verwendet, um eine JMP-Tabelle mit ".jmp" zu finden, und es hat für mich funktioniert.
Oder wenn ich Ihre Frage falsch verstanden habe, gibt es eine andere Möglichkeit, wie Sie die Anzahl der Dateien im Verzeichnis durchlaufen und den Namen der Skriptdatei wie folgt erhalten können:
Zum ( n = 1 , n <= N Artikel ( lDateien ) , n ++,
Datei =l Dateien [ n ] ;
Wenn (
Endet mit ( Datei , ".jsl" ) ,/*Mach dein Ding*/;
Unterbrechung();
);
);