Ottieni il nome dello script corrente<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto cercando di trovare un modo per aggiungere il nome di uno script al report creato dallo script. Ciò significa che ad un certo punto devo ottenere una stringa di testo con il nome dello script. Posso che la directory del file di script:
sDir=Ottieni directory predefinita();
e i file all'interno di quella directory:
lFiles=File nella directory(sDir);
Ma non ho trovato un modo per ottenere solo il nome del file che ottengo è dello script che sto attualmente eseguendo. Il problema è che quando in seguito trovo un report salvato, voglio sapere esattamente quale script è stato eseguito per produrre detto report.
Per favore aiuto.
Ri: Ottieni il nome dello script correnteGrazie @BioData41
Finché lo utilizzo nello script per fare riferimento al proprio filePath, funziona quando si esegue il file da solo o quando si esegue lo script da un altro script utilizzando Include().
scriptFilePath = Include File List()[1];
Ri: Ottieni il nome dello script correnteNon sono sicuro da quanto tempo esista questa funzione, dato che sono abbastanza nuovo in JMP e l'ho appena trovata io stesso mentre cercavo di risolvere un problema simile, ma sembra che la funzione "Includi elenco file()" restituisca un elenco di aprire i file che si trovano nel contesto dello script in esecuzione. (A proposito, la descrizione di questa funzione è solo in qualche modo informativa, come nel caso della maggior parte delle funzioni/metodi/messaggi nello Scripting Index o nelle risorse online.)
Sembra che se questa funzione viene eseguita nella parte superiore dello script prima che qualsiasi altra cosa venga aperta dallo script, il percorso del file di script e il nome del file di script possono essere estratti da quello poiché questo è l'unico percorso restituito a quel punto.
Quando l'ho provato con altri file aperti in JMP ed ho eseguito lo script facendo doppio clic su di esso da Esplora risorse (con lo script impostato per essere eseguito all'apertura senza aprire una finestra dell'editor di script includendo "//!" nella parte superiore dello script ), ottengo restituito solo il percorso di quello script. Nessuno degli altri file aperti viene restituito.
Ri: Ottieni il nome dello script correnteQuesto è stato esattamente ciò che ho fatto. Grazie
Ri: Ottieni il nome dello script correnteHo creato quasi lo stesso identico script (il ciclo "For") prima di pubblicare la mia domanda. Il problema è che non so se lo script che restituisce è quello corrente. Se ad esempio lo stesso script viene salvato in versioni diverse nella stessa cartella, otterrei un elenco di file .jsl. Devo ottenere il nome dello script corrente in esecuzione, indipendentemente dal numero di script con nomi simili che possono essere salvati nella stessa posizione.
Ri: Ottieni il nome dello script correnteSe lo script viene eseguito da una finestra di script, l'approccio diretto nell'esempio seguente fornisce il nome del file.
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));
Ri: Ottieni il nome dello script correnteNon so se c'è un modo per farlo.Ho impostato una variabile all'inizio di ogni script.Un po' noioso ma aiuta con il debug.
pnome = "Il mio script.JSL" ;
Ri: Ottieni il nome dello script correnteProva a utilizzare:
Contiene (lFile , "script.jsl" ) ;
L'ho usato per individuare una tabella JMP utilizzando ".jmp" e ha funzionato per me.
Oppure, se ho sbagliato la tua domanda, c'è un altro modo in cui puoi scorrere il numero di file nella directory e ottenere il nome del file di script come:
Per ( N = 1 , N <= N articoli ( lFile ) , N ++,
file =l File [ N ] ;
Se (
Finisce con ( file , ".jsl" ) ,/*Fare ciò che sai fare*/;
Rottura();
);
);