Obtener el nombre del script actual<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy tratando de encontrar una manera de agregar el nombre de una secuencia de comandos al informe creado por la secuencia de comandos. Esto significa que necesito obtener una cadena de texto del nombre del script en algún momento. Puedo que el directorio del archivo de script:
sDir=Obtener directorio predeterminado();
y los archivos dentro de ese directorio:
lFiles=Archivos en Directorio(sDir);
Pero no he encontrado una manera de obtener solo el nombre de archivo que obtengo del script que estoy ejecutando actualmente. El problema es que cuando encuentro un informe guardado más tarde, quiero saber exactamente qué secuencia de comandos se ejecutó para producir dicho informe.
Por favor ayuda.
Re: Obtener el nombre del script actualNo estoy seguro de cuánto tiempo ha existido esta función, ya que soy bastante nuevo en JMP, y encontré esta función yo mismo mientras intentaba resolver un problema similar, pero parece que la función "Incluir lista de archivos ()" devuelve una lista de abrir archivos que están en el contexto del script en ejecución. (Por cierto, la descripción de esta función es solo informativa, como es el caso de la mayoría de las funciones/métodos/mensajes en el Índice de secuencias de comandos o recursos en línea).
Parece que si esta función se ejecuta en la parte superior de la secuencia de comandos antes de que la secuencia de comandos abra cualquier otra cosa, la ruta del archivo de secuencia de comandos y el nombre del archivo de secuencia de comandos se pueden extraer de eso, ya que esta es la única ruta devuelta en ese punto.
Cuando lo probé con otros archivos abiertos en JMP y ejecuté el script haciendo doble clic en él desde el Explorador de Windows (con el script configurado para ejecutarse en abierto sin abrir una ventana del editor de scripts al incluir "//!" en la parte superior del script ), obtengo solo la ruta de ese script devuelto. Ninguno de los otros archivos abiertos se devuelve.
Re: Obtener el nombre del script actualEso fue exactamente lo que hice. Gracias
Re: Obtener el nombre del script actualSe me ocurrió casi exactamente el mismo guión (el bucle "For") antes de publicar mi pregunta. El problema es que no sé si el script que devuelve es el actual. Si, por ejemplo, el mismo script se guarda en diferentes versiones en la misma carpeta, obtendría una lista de archivos .jsl. Necesito obtener el nombre del script actual en ejecución sin importar cuántos scripts con nombres similares se puedan guardar en la misma ubicación.
Re: Obtener el nombre del script actualSi la secuencia de comandos se ejecuta desde una ventana de secuencia de comandos, el enfoque directo en el siguiente ejemplo le proporciona el nombre del archivo.
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: Obtener el nombre del script actualNo sé si hay una manera de hacer eso.Establecí una variable al comienzo de cada script.Un poco tedioso pero ayuda con la depuración.
pname = "Mi Guión.JSL" ;
Re: Obtener el nombre del script actualIntenta usar:
Contiene (lArchivos , "script.jsl" ) ;
Usé esto para ubicar una tabla JMP usando ".jmp" y funcionó para mí.
O si me equivoqué en su pregunta, hay otra forma en la que puede recorrer la cantidad de archivos en el directorio y obtener el nombre del archivo de script como:
Para ( norte = 1 , norte <= N elementos ( lArchivos ) , norte ++,
expediente =l archivos [ norte ] ;
Si (
Termina con ( expediente , ".jsl" ) ,/*Haz tus cosas*/;
Romper();
);
);