Obtenir le nom du script actuel<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'essaie de trouver un moyen d'ajouter le nom d'un script au rapport créé par le script. Cela signifie que je dois obtenir une chaîne de texte du nom du script à un moment donné. Je peux que le répertoire du fichier de script :
sDir=Obtenir le répertoire par défaut();
et les fichiers dans ce répertoire :
lFiles=Fichiers dans le répertoire (sDir);
Mais je n'ai pas trouvé de moyen d'obtenir uniquement le nom de fichier que j'obtiens, celui du script que j'exécute actuellement. Le problème est que lorsque je retrouve plus tard un rapport enregistré, je souhaite savoir exactement quel script a été exécuté pour produire ledit rapport.
S'il vous plaît, aidez-moi.
Re : Récupérer le nom du script actuelMerci @BioDonnées41
Tant que j'utilise ceci dans le script pour référencer son propre filePath, cela fonctionne lors de l'exécution du fichier seul ou lors de l'exécution du script à partir d'un autre script à l'aide d'Include().
scriptFilePath = Include File List()[1];
Re : Récupérer le nom du script actuelJe ne sais pas depuis combien de temps cette fonction existe, car je suis relativement nouveau dans JMP et je viens de trouver cette fonction moi-même en essayant de résoudre un problème similaire, mais il semble que la fonction "Inclure la liste des fichiers ()" renvoie une liste de ouvrir les fichiers qui se trouvent dans le contexte du script en cours d'exécution. (D'ailleurs, la description de cette fonction n'est qu'informative, comme c'est le cas pour la plupart des fonctions/méthodes/messages de l'index de scripts ou des ressources en ligne.)
Il semble que si cette fonction est exécutée en haut du script avant que quoi que ce soit d'autre ne soit ouvert par le script, le chemin du fichier de script et le nom du fichier de script peuvent en être extraits car c'est le seul chemin renvoyé à ce stade.
Lorsque je l'ai testé avec d'autres fichiers ouverts dans JMP et que j'ai exécuté le script en double-cliquant dessus depuis l'Explorateur Windows (avec le script configuré pour s'exécuter à l'ouverture sans ouvrir de fenêtre d'éditeur de script en incluant "//!" en haut du script ), je reçois uniquement le chemin de ce script. Aucun des autres fichiers ouverts n'est renvoyé.
Re : Récupérer le nom du script actuelC’est exactement ce que j’ai fait. Merci
Re : Récupérer le nom du script actuelJ'ai trouvé presque exactement le même script (la boucle "For") avant de poster ma question. Le problème est que je ne sais pas si le script renvoyé est celui actuel. Si, par exemple, le même script est enregistré dans différentes versions dans le même dossier, j'obtiendrais une liste de fichiers .jsl. J'ai besoin d'obtenir le nom du script en cours d'exécution, quel que soit le nombre de scripts portant un nom similaire pouvant être enregistrés au même emplacement.
Re : Récupérer le nom du script actuelSi le script est exécuté à partir d'une fenêtre de script, l'approche directe dans l'exemple ci-dessous vous donne le nom du fichier.
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));
Re : Récupérer le nom du script actuelJe ne sais pas s'il existe un moyen de faire ça.J'ai défini une variable au début de chaque script.Un peu fastidieux mais aide au débogage.
pnom = "Mon Script.JSL" ;
Re : Récupérer le nom du script actuelEssayez d'utiliser :
Contient (lFichiers , "script.jsl" ) ;
J'ai utilisé ceci pour localiser une table JMP en utilisant ".jmp" et cela a fonctionné pour moi.
Ou si j'ai mal compris votre question, il existe un autre moyen de parcourir le nombre de fichiers du répertoire et d'obtenir le nom du fichier de script, comme :
Pour ( n = 1 , n <= N articles ( lFichiers ) , n ++,
déposer =l des dossiers [ n ] ;
Si (
Se termine par ( déposer , ".jsl" ) ,/*Faire votre truc*/;
Casser();
);
);