Re: ¿Cómo escribir un script JSL para llamar y ejecutar otros scripts sin abrir una ventana de script pero mostrando solo un botón de cancelación?Esto debería hacer lo que estás pidiendo. No he verificado que el botón de cancelar funcione, ya que JMP ejecutó todos los scripts en la carpeta de mi computadora muy rápidamente.
/*JMP STATISTICAL DISCOVERY LLC (“JMP”) PERMITS THE USE OF THIS COMPUTER SOFTWARE CODE (“CODE”) ON AN AS-IS BASIS AND AUTHORIZES YOU TO USE THE CODE SUBJECT TO THE TERMS LISTED HEREIN. BY USING THE CODE, YOU AGREE TO THESE TERMS. YOUR USE OF THE CODE IS AT YOUR OWN RISK. JMP MAKES NO REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRIGEMENT, AND TITLE, WITH RESPECT TO THE CODE.
You may use the Code solely as part of a software product you currently have licensed from JMP, JMP’s parent company SAS Institute Inc. (“SAS”), or one of JMP’s or SAS’s subsidiaries or authorized agents (the “Software”), and not for any other purpose. The Code is designed to add functionality to the Software but has not necessarily been tested. Accordingly, JMP makes no representation or warranty that the Code will operate error-free. JMP is under no obligation to maintain, support, or continue to distribute the Code.
Neither JMP nor its licensors shall be liable to you or any third-party for any general, special, direct, indirect, consequential, incidental, or other damages whatsoever arising out of or related to your use or inability to use the Code, even if JMP has been advised of the possibility of such damages. Except as otherwise provided above, the Code is governed by the same agreement that governs the Software. If you do not have an existing agreement with JMP or SAS governing the Software, you may not use the Code.
JMP and all other JMP Statistical Discovery LLC product or service names are registered trademarks or trademarks of JMP Statistical Discovery LLC in the USA and other countries. ® indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies.
*/
Names Default To Here( 1 );
//get scripts to run
lstScripts = Files In Directory( "$Documents/My Scripts/" );
//set up stop button
nw = New Window( "Running",
Text Box( "Running all the scripts" ),
Button Box( "Cancel", Stop() )
);
For Each( {i}, lstScripts,
If( Word( -1, i, "." ) == "jsl", //make sure it's a .jsl file
include( "$Documents/My Scripts/" || Char( i ) ); //run it
Wait( 0 ); //this allows JMP to recognize if cancel button has been pressed
)
);
nw << close window;Re: ¿Cómo escribir un script JSL para llamar y ejecutar otros scripts sin abrir una ventana de script pero mostrando solo un botón de cancelación?@Jed_Campbell Gracias,
No me queda claro cómo su secuencia de comandos (versión ligeramente modificada a continuación) llama a la secuencia de comandos principal en la ruta.
En mi caso, el script principal llama a todos los demás scripts. Esta es la funcionalidad que necesito.
Además, ¿es posible capturar y mostrar el registro que se muestra (en la parte inferior) en mi secuencia de comandos principal en la ventana (nw) generada en su secuencia de comandos? De todos modos, en mi caso, el script original y el modificado a continuación no funcionaron.
Names Default To Here( 1 );
path2Scripts = "C:\Users\UserName\Documents\Scripts_v0.1.4"; //change this as necessary
//get scripts to run
lstScripts = Files In Directory(path2Scripts);
//set up stop button
nw = New Window( "Running", << modal,
Text Box( "Running all the scripts" ),
Button Box( "Cancel", Stop() )
);
For Each( {i}, lstScripts,
If( Word( -1, i, "." ) == "jsl", //make sure it's a .jsl file
include( path2Scripts || Char( i ) ); //run it
Wait( 0 ); //this allows JMP to recognize if cancel button has been pressed
)
);
nw << close window;¿Qué me perdí?
Re: ¿Cómo escribir un script JSL para llamar y ejecutar otros scripts sin abrir una ventana de script pero mostrando solo un botón de cancelación?Ah, creo que entendí mal tu pregunta original. La secuencia de comandos que proporcioné muestra un botón de cancelación y ejecuta todas las secuencias de comandos en una carpeta. Si entiendo correctamente, ya tiene el script creado para ejecutar todos los demás scripts. En este caso, la secuencia de comandos para este archivo debería ser similar a:
//!
//the //! comment on the first line causes the script to run, rather than open
Names Default To Here (1);
clear log();
//set up stop button
nw = New Window( "Running", << modal,
Text Box( "Running all the scripts" ),
Button Box( "Cancel", Stop() )
);
include("path/to/main/scipt.jsl"); //your file that runs all the scripts
logtxt = get log();
Deberá asegurarse de insertar wait(0); declaraciones en su archivo de script principal. De lo contrario, es posible que JMP no permita que funcione el botón de cancelar.
Re: ¿Cómo escribir un script JSL para llamar y ejecutar otros scripts sin abrir una ventana de script pero mostrando solo un botón de cancelación?La clave para hacer que JSL se ejecute automáticamente es agregar esto a la primera línea del script.
//!
Si hace doble clic en el script, se ejecutará y no abrirá el archivo del script.
por ejemplo, pase esto en un script vacío y guárdelo, luego haga doble clic en él.
//!
Speak("ha, ha, I just ran a script.");¿Cómo escribir un script JSL para llamar y ejecutar otros scripts sin abrir una ventana de script pero mostrando solo un botón de cancelar?Quiero escribir un script JSL, por ejemplo myScript.jsl, que cuando se hace doble clic para abrir no se abre en la ventana del script, sino que ejecuta otros scripts llamados dentro de myScript.jsl mientras muestra una ventana modal que muestra "Script en ejecución" y un botón Cancelar para detener mayor ejecución.
Si esto es posible hacer en JSL, ¿podría darme un ejemplo?
Automatización y secuencias de comandos