Vorrei un comando per restituire il percorso dello script JSL. Ad esempio, se eseguo uno script "/Users/John_Doe/Documents/JMP/JMP Scripts/myscript.jsl" e vorrei avere un comando come questo all'interno dello script:
thispath = Get Current Script Path(); <BR />Show(thispath);<BR />
E vorrei che questo tornasse: "/Users/John_Doe/Documents/JMP/JMP Scripts/myscript.jsl"
Il motivo di questa richiesta:
Ho uno script "common functions.jsl" che molti dei miei script chiamano usando "Include". Contiene molte funzioni utente utilizzate di frequente che non voglio copiare in ogni nuovo script che scrivo. Mi piace anche condividere i miei script con altri nel mio gruppo, insieme a "funzioni comuni.jsl". Posso richiedere che i membri del mio gruppo posizionino common functions.jsl nello stesso posto rispetto al JSL che lo chiama (ad esempio la stessa cartella o cartella principale), ma non posso controllare quali saranno i nomi dei percorsi complessivi. Se avessi il nome del percorso dello script chiamante, potrei facilmente usarlo per capire dove si trova "common function.jsl" (ad esempio "/Users/John_Doe/Documents/JMP/JMP Scripts/common function.jsl").
Non posso usare Get Default Directory(). Ho scoperto che questo comando restituisce solo il percorso del file più recente aperto utilizzando la finestra di dialogo Apri file. Funziona se l'utente apre lo script e lo esegue immediatamente. Il problema è se l'utente apre un altro script dopo aver aperto "myscript.jsl", ma poi tenta di eseguire "myscript.jsl". In questo caso Get Default Directory() restituirà il percorso dell'altro script, non "myscript.jsl". Inoltre, Get Default Directory() non viene aggiornato se uno script viene aperto dall'elenco File recenti.
Qualche suggerimento o è qualcosa che ancora non esiste? Grazie per l'aiuto.
Vorrei che questa funzione è mai successo qualcosa con questo?
Sono stato bloccato con:
curdir = Substr(Get Default Directory(), 2, 999);
Convert File Path( "", windows )|| (current window() << get window title) ||".jsl"