在不打开新 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 脚本以及另一个打开数据表的脚本)。关于如何解决这个问题的任何进一步想法?