¿Cómo obtener la ruta al archivo del proyecto actual?Si tengo un script dentro de un proyecto (o tal vez una referencia al proyecto en un script fuera del proyecto), ¿cómo obtengo la ruta del archivo donde se guarda el proyecto en el disco?Estoy interesado en hacer esto con JSL, no de forma interactiva.
Automatización y secuencias de comandosventanasRe: ¿Cómo obtener la ruta al archivo del proyecto actual?Basándome en el silencio, supongo que esto puede no ser (fácilmente) posible.
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?No encuentro una función específica para un proyecto JMP. Tampoco existe una variable de ruta para los proyectos. Eres libre de guardar un proyecto donde quieras. Es una especie de archivo JMP, por lo que cuando abres o guardas un proyecto, JMP comenzará con el último directorio. Puede obtener esta información utilizando la función Obtener directorio predeterminado().

Re: ¿Cómo obtener la ruta al archivo del proyecto actual?Yo también luché con esto. Incluso si fuera posible, no funcionaría para lo que quería hacer porque los archivos de un proyecto se descomprimen según demanda, no cuando se abre el proyecto por primera vez. Mi caso de uso era necesitar una ruta de archivo para un recurso en el proyecto... que iría a un programa externo. Terminé usando loadtextfile(nombre del archivo del proyecto)/savetextfile($temp/name) y enviando el nombre del archivo temporal.
Usar un proyecto para un proyecto - Audio.jsl pasa un archivo a powershell para reproducirlo.
¿Que estás tratando de hacer?
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?
¿Que estás tratando de hacer?
Esa es una buena pregunta, y probablemente debería haber respondida en la pregunta original.Cuando se trabaja en un proyecto, a veces sería útil poder copiar rápidamente la ruta al proyecto para abrir la carpeta que lo contiene y ver otros archivos asociados o para almacenar el enlace en mis notas o enviarlo a un compañero de trabajo.Esta es una característica relativamente común y útil que se encuentra en muchos editores de código y software de suite ofimática.Por supuesto, puedes buscar el archivo por otros medios, pero para mí es una tarea bastante común y resulta útil tener un método rápido que no requiera que analice mentalmente la estructura de organización de mis archivos cada vez.¡Gracias por tu tiempo!
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?Gracias por mirar en esto.Tuve suerte al usar Get Default Directory() en scripts simples, pero cuando se guarda un script en un proyecto, simplemente devuelve la ruta dentro del archivo del proyecto en lugar de donde está almacenado el proyecto:
Get Default Directory() = "jmpprj://contents/";
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?@aaron_andersen , @Julian - El tiene razón; He recurrido al uso de archivo->Guardar como para descubrir la ruta en el pasado. La lista de archivos recientes de la ventana de inicio es mejor y ofrece tanto la ruta de copia como la ventana que contiene abierta. Tal vez también podrían exponerse en tablas de datos, secuencias de comandos y ventanas de proyectos. La ventana emergente del sistema en la barra de título podría ser una alternativa al menú de archivos.
Creo que los proyectos pueden ser un caso especial de JSL; Las tablas de datos y los scripts ya pueden obtener su ruta.
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?
@Craige_Hales escribió:
@aaron_andersen , @Julian - El tiene razón; He recurrido al uso de archivo->Guardar como para descubrir la ruta en el pasado.
Sí, también lo he usado en ocasiones.Por lo que recuerdo, no funcionará si no has guardado el archivo del proyecto desde que lo abriste.
La lista de archivos recientes de la ventana de inicio es mejor y ofrece tanto la ruta de copia como la ventana que contiene abierta.
Ah, esa es al menos una solución alternativa decente.Gracias.
Tal vez también podrían exponerse en tablas de datos, secuencias de comandos y ventanas de proyectos. La ventana emergente del sistema en la barra de título podría ser una alternativa al menú de archivos.
Creo que los proyectos pueden ser un caso especial de JSL; Las tablas de datos y los scripts ya pueden obtener su ruta.
Tener esta función en algún menú sería genial.Si también estuviera disponible a través de JSL, sería una ventaja.
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?Más vale tarde que nunca (espero), creo que lo que estás buscando es el mensaje Project File Path() en el proyecto en sí.
Desde fuera del proyecto:
project = Open( "$SAMPLE_PROJECTS/Big Class.jmpprj" );
path = project << project file path();
O dentro del proyecto usando este proyecto():
project = Open( "$SAMPLE_PROJECTS/Big Class.jmpprj" );
project << Run Script(
// this line should work from any JSL script executed from within the project
path = this project() << project file path()
);
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?Hola Aarón,
¡Siempre es mejor tarde que nunca! ¿La "ruta del archivo del proyecto" es nueva en JMP 18? Cuando ejecuto el script en JMP 17, obtengo lo siguiente:
Object 'Project' does not recognize the message 'project file path'; perhaps you mean one of these: <<<<<<<<< re>Thanks,Austin
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?Resulta que ese mensaje no estará disponible hasta (el futuro) JMP 18.2.
De hecho, parece que lo agregué a principios de este año en respuesta a esta pregunta, pero lo marqué incorrectamente como existente desde JMP 14. Luego, de alguna manera olvidé que lo había hecho , de modo que al reencontrarme con este hilo unos meses después, fui a buscar una solución y encontré el que había creado recientemente (pero pensé que era mucho más antiguo de lo que era).
Lo lamento.
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?// Tuve un problema similar al eliminar el nombre del archivo de la ruta del archivo.
Los nombres predeterminados están aquí (1);
dt = Tabla de datos actual();
archivo_actual = dt << Obtener ruta();
directorio_actual = Word([1 -2], archivo_actual, "\");
// devuelve la cadena completa ([1 -1]), excepto la última palabra ([1 -2])
datos = Elegir Archivo(
"Seleccionar archivos de datos",
directorio_actual,
{"Excel|csv","Archivos JMP|jmp;jsl;jrn","Todos los archivos|*"},
1,
0,
"", múltiple
);
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?Ah, me encanta la historia. No te preocupes. No puedo evitar reírme porque suena exactamente como algo que yo haría. La cantidad de veces que escribí una función para resolver un problema y luego descubrí que había hecho exactamente lo mismo con un nombre diferente seis meses antes...
De todos modos, ¡me alegra saber que la funcionalidad está en camino!
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?Hola, ahora tenemos JMP 18.2.
¿Donde se puede consultar?
Re: ¿Cómo obtener la ruta al archivo del proyecto actual?En JSL.
path = this project() << project file path();
show(path);
Probado en 19EA.