在不打開新 JMP 實例的情況下運行任務計劃程序我正在嘗試運行一個 JSL 腳本,該腳本使用 Windows 任務計劃程序每 3 小時更新一次各種數據表。不幸的是,每次運行 JSL 時,它都會打開一個新的 JMP 實例,而不是使用已經打開的現有實例。每次任務計劃程序調用 JSL 文件時,在不打開新的 JMP 實例的情況下,是否有完成此任務自動化的技巧?
腳本編寫回复:在不打開新 JMP 實例的情況下運行任務計劃程序您可能需要查看 JMP 中的 Schedule() 函數。它在給定的 JMP 會話中運行,並在同一會話中重新運行代碼。
回复:在不打開新 JMP 實例的情況下運行任務計劃程序幾個選項。
1. 為什麼不讓它打開一個新實例,然後在 JMP Script 結束時關閉它?
2. 將`//!` 放在腳本的開頭並打開它。它應該在您當前註冊的 jmp 版本中打開並自動運行。
3. 將 .jsl 保存為 .jrp,它應該做與 2 相同的事情。
我個人更喜歡像這樣的非交互式事情做 1,因為這樣我可以確認 JMP 在 powershell 中正確關閉,以便我可以提供更好的控制台錯誤消息。
回复:在不打開新 JMP 實例的情況下運行任務計劃程序我會看一眼 Jim,看看它是否比 Task Scheduler 更有效。
回复:在不打開新 JMP 實例的情況下運行任務計劃程序我希望該流程在現有實例中運行,以便我可以定期繪製/評估最近收集的數據,而不必每次都打開 JMP。
我已經在使用選項 2,但它和選項 3 總是打開一個新的 JMP 實例,而不是在已經打開的實例中執行。如果您多次運行以下腳本,它是在 JMP 的當前實例中運行還是為每次執行打開一個新實例? 好奇你是否有與我不同的行為。
//!
清除日誌();
打印(“你好世界”);
回复:在不打開新 JMP 實例的情況下運行任務計劃程序哦,那可能是因為您的註冊表搞砸了。 因為它對我來說很好。即使您打開 JMP 數據表,它也會這樣做嗎?在 Windows 上?
從這裡偷來的答案
我相信您可以通過以下方式糾正此問題。
- 退出所有正在運行的 JMP 會話
- 運行您希望用作默認 JMP 版本的 JMP 版本(如果您的機器上碰巧安裝了多個 JMP 版本)
- 轉到文件-> 首選項-> Windows 特定,然後單擊對話框窗口底部附近的重置關聯按鈕
這應該修復 Windows 註冊表以將當前 JMP 會話與 JMP 文件相關聯。
現在嘗試雙擊您的文件,看看它是否按預期運行。
讓我們知道是否可以解決它。
-傑夫
回复:在不打開新 JMP 實例的情況下運行任務計劃程序傑夫,
感謝您的建議。不幸的是,推薦的步驟並沒有解決問題。有趣的是,我的另一台運行 JMP 和 JMP Pro 的機器沒有同樣的問題。在現在出現問題的機器上(我最近從 JMP 15 更新到 16)我嘗試了您提供的步驟,但我仍然遇到同樣的問題,每次雙擊 JSL 文件都會打開多個實例。我已經卸載了所有 JMP 版本,重新啟動計算機並重新安裝到 JMP 16,但是每次啟動 JSL 文件時都會繼續打開一個新的 JMP 實例(運行上面顯示的 Hello World 腳本以及另一個打開數據表的腳本)。關於如何解決這個問題的任何進一步想法?