Guardar y sobrescribir archivosTengo scripts JSL que abren y cierran hojas de servicio. Mientras están abiertos, fusiona los documentos en un solo archivo y luego guarda el archivo en una carpeta local. El script actualmente sobrescribe el archivo existente en la carpeta local. ¿Existe una secuencia de comandos que llene un nuevo archivo en una subcarpeta (idealmente, que se distinga al etiquetar una marca de tiempo de creación en el título "Fusionado") cada vez que se ejecuta la secuencia de comandos, en lugar de sobrescribir la actual? O mejor aún, está bien si se sobrescribe el actual, pero se guarda una copia en una subcarpeta cada vez que se ejecuta el script. Algo así como un registro atrasado que puedo ver, pero otros solo pueden ver la versión "en vivo"
@txnelson , te he visto ayudar aquí con algo similar: Guarde el nuevo gráfico en lugar de sobrescribir los ya guardados
¿Tal vez es una variación de esto?
Tabla de datossecuencias de comandosventanasRe: Guardar y sobrescribir archivos¡Trabajado como un encanto! ¡Gracias!
Re: Guardar y sobrescribir archivosToday () genera una marca de tiempo, pero está en el valor de fecha y hora de JMP Uso de fechas, horas, fechas y duraciones en JMP .
Si usa AsDate(), lo más probable es que tenga algunos caracteres que no están permitidos en los nombres de archivo. ¿Qué tipo de formato quieres? Puede construirlo a partir de la fecha y hora que le da Today(), consulte el índice de secuencias de comandos y la parte de fecha y hora:

Desde allí puede encontrar funciones como Year(), Month(), Day(), Hour(), Minute() y Second() con estas (combinadas con Char() o Eval Insert(), puede construir la versión más robusta de la marca de tiempo que desee.
Editar:
Este es un código un poco largo, pero debería ser bastante robusto y básicamente darte una cadena con formato AAAAMMDD_hhmmss
Names Default To Here(1);
cur_time = Today();
yyyy = char(Year(cur_time));
//add spanning
mm = char(Month(cur_time));
mm = Substr("00", 1, 2 - Length(mm)) || mm;
dd = char(Day(cur_time));
dd = Substr("00", 1, 2 - Length(dd)) || dd;
hh = char(Hour(cur_time));
hh = Substr("00", 1, 2 - Length(hh)) || hh;
min = char(Minute(cur_time));
min = Substr("00", 1, 2 - Length(min)) || min;
ss = char(Second(cur_time));
ss = Substr("00", 1, 2 - Length(ss)) || ss;
timestamp_str = yyyy || mm || dd ||"_"|| hh || min || ss;
Re: Guardar y sobrescribir archivosGracias jti!
El script funciona muy bien, excepto que la marca de tiempo completa valores como "3727386650" antes del nombre de la tabla. Intenté hacer una marca de tiempo:
timestamp = As Date( Today() );
Para completar la fecha y la hora, pero el script no pudo guardar el archivo.
Re: Guardar y sobrescribir archivosPuedes usar
rc = Copy File( from, to );
para copiar el archivo.Busque en el Editor de secuencias de comandos los detalles y un buen ejemplo en Copiar archivo
Una vez que copie el archivo a su subdirectorio deseado, simplemente puede usar
data table("table name") << Save ("file path" );
para guardar la nueva tabla.En la ruta del archivo, proporciona la ruta y el nombre completo del archivo, incluida la extensión .jmp.
Re: Guardar y sobrescribir archivosAmbas opciones son posibles con un poco de secuencias de comandos. Puede obtener fácilmente "marca de tiempo" usando Today().
Aquí hay un ejemplo bastante simple de cómo podría simplemente guardar con la marca de tiempo:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
table_name = dt << get name;
timestamp = Today();
save_path = Eval Insert("$temp\^timestamp^_^table_name^.jmp");
dt << Save(save_path);
Open("$temp");
Al guardar en otra carpeta, puede hacer dos guardados con diferentes rutas y nombres de archivo o copiar el archivo.