Speichern und Überschreiben von DateienIch habe ein JSL-Skript, das mehrere Blätter öffnet und schließt. Während sie geöffnet sind, werden die Dokumente in einer einzigen Datei zusammengeführt und die Datei dann in einem lokalen Ordner gespeichert. Das Skript überschreibt derzeit die vorhandene Datei im lokalen Ordner. Gibt es ein Skript, das bei jeder Ausführung des Skripts eine neue Datei in einem Unterordner auffüllt (idealerweise gekennzeichnet durch das Markieren eines Zeitstempels der Erstellung mit dem Titel „Zusammengeführt“), anstatt die aktuelle Datei zu überschreiben? Oder noch besser, es ist in Ordnung, wenn das aktuelle überschrieben wird, aber bei jeder Ausführung des Skripts eine Kopie davon in einem Unterordner gespeichert wird? So etwas wie ein Rückstand, den ich mir ansehen kann, aber andere können nur die „Live“-Version sehen
@txnelson , ich habe gesehen, dass Sie hier bei etwas Ähnlichem geholfen haben: Speichern Sie ein neues Diagramm, anstatt die bereits gespeicherten zu überschreiben
Vielleicht ist es eine Variation davon?
InhaltsorganisationDatenmischung und -bereinigungWindowsBetreff: Speichern und Überschreiben von DateienLief wie am Schnürchen! Danke schön!
Betreff: Speichern und Überschreiben von DateienToday() generiert zwar einen Zeitstempel, liegt jedoch im JMP-Datums-/Uhrzeitwert vor Verwenden von Datums-, Uhrzeit-, Datums- und Zeitangaben in JMP .
Wenn Sie AsDate() verwenden, enthält es höchstwahrscheinlich einige Zeichen, die in Dateinamen nicht zulässig sind. Welche Art von Format wünschen Sie? Sie können es aus dem datetime Today() erstellen, das Sie erhalten, sehen Sie sich den Scripting Index und Date Time-Teil an:

Von dort aus finden Sie Funktionen wie Year(), Month(), Day(), Hour(), Minute() und Second(), mit denen Sie (in Kombination mit Char() oder Eval Insert()) die robusteste Version erstellen können den gewünschten Zeitstempel.
Bearbeiten:
Dies ist ein etwas langer Code, aber er sollte ziemlich robust sein und Ihnen im Grunde eine Zeichenfolge im Format YYYYMMDD_hhmmss liefern
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;
Betreff: Speichern und Überschreiben von DateienDanke jthi!
Das Skript funktioniert hervorragend, außer dass der Zeitstempel Werte wie „3727386650“ vor dem Tabellennamen einfügt. Ich habe versucht, einen Zeitstempel zu erstellen:
timestamp = As Date( Today() );
Zum Ausfüllen von Datum und Uhrzeit, aber das Skript konnte die Datei nicht speichern.
Betreff: Speichern und Überschreiben von DateienSie können verwenden
rc = Copy File( from, to );
um die Datei zu kopieren.Schauen Sie im Skript-Editor nach den Details und einem guten Beispiel für die Datei kopieren
Sobald Sie die Datei in das gewünschte Unterverzeichnis kopiert haben, können Sie sie einfach verwenden
data table("table name") << Save ("file path" );
um die neue Tabelle zu speichern.Im Dateipfad geben Sie den Pfad und den vollständigen Dateinamen inklusive der Erweiterung .jmp an.
Betreff: Speichern und Überschreiben von DateienBeide Optionen sind mit ein wenig Scripting möglich. Mit Today() können Sie ganz einfach einen „Zeitstempel“ erhalten.
Hier ist ein ziemlich einfaches Beispiel, wie Sie einfach mit Zeitstempel speichern können:
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");
Beim Speichern in einem anderen Ordner können Sie einfach zwei Speicherungen mit unterschiedlichen Pfaden und Dateinamen durchführen oder die Datei kopieren.