文件保存和覆蓋我有一個 JSL 腳本,可以打開和關閉藪表。 當它們打開時,它將文檔合併到一個文件中,然後將文件保存到本地文件夾中。 該腳本當前會覆蓋本地文件夾中的現有文件。 每次運行腳本時,是否有一個腳本會在子文件夾中填充一個新文件(理想情況下,通過將創建時間戳標記到標題“Merged”上來區分),而不是覆蓋當前文件? 或者更好的是,如果當前腳本被覆蓋就可以了,但是每次運行腳本時都會將其副本保存到子文件夾中? 有點像我可以查看的積壓日誌,但其他人只能看到“實時”版本
@txnelson ,我看到你在這裡幫助過類似的事情: https://community.jmp.com/t5/Discussions/Save-new-graph-instead-of-overwriting-the-already-saved-ones/mp/54078#M30546
也許這是一個變種?
數據表腳本視窗回复:文件保存和覆蓋只需一點點腳本,這兩種選擇都是可能的。 您可以使用 Today() 輕鬆獲取“時間戳”。
這是一個相當簡單的示例,您如何使用時間戳進行保存:
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");
通過保存到其他文件夾,您可以使用不同的路徑和文件名進行兩次保存或複製文件。
回复:文件保存和覆蓋您可以使用
rc = Copy File( from, to );
複製文件。在腳本編輯器中查看詳細信息以及復製文件的一個很好的示例
將文件複製到所需的子目錄後,您可以簡單地使用
data table("table name") << Save ("file path" );
保存新表。在文件路徑中,您提供路徑和完整的文件名,包括 .jmp 擴展名。
回复:文件保存和覆蓋謝謝jthi!
該腳本運行良好,除了時間戳在表名之前填充諸如“3727386650”之類的值。 我嘗試製作時間戳:
timestamp = As Date( Today() );
填充日期和時間,但腳本無法保存文件。
回复:文件保存和覆蓋Today() 確實生成時間戳,但它在 JMP 日期時間值中在 JMP 中使用日期、時間、日期時間和持續時間.
如果您使用 AsDate() 它很可能會有一些文件名中不允許出現的字符。 你想要什麼類型的格式? 您可以從 Today() 給您的日期時間構建它,查看 Scripting Index 和 Date Time 部分:

從那裡您可以找到諸如 Year()、Month()、Day()、Hour()、Minute() 和 Second() 之類的函數(與 Char() 或 Eval Insert() 結合使用,您可以構建最強大的版本你想要的時間戳。
編輯:
這是一個有點長的代碼,但它應該相當健壯,基本上給你 YYYYMMDD_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;