scripting - mathematica 从命令行启动前端和评估笔记本

标签 scripting wolfram-mathematica mathematica-frontend

有没有办法从(Windows)命令提示符启动 mathematica 前端(GUI)并让它在没有进一步用户操作的情况下评估笔记本?

即使 mathematica.exe 采用 -run 和 -initfile 选项,它们的工作方式也不一样
就像他们对 math.exe 所做的那样。 (例如,-run ''<
谢谢。第一个答案看起来很有希望,但是我得到了
FrontEndObject::notavail
前端不可用

(根据文档,顺便说一下,它是“UseFrontEnd”。)

也许是路径问题,但是即使在设置 $FrontEndLaunchCommand 之后也没有乐趣..

回复:初始化单元——这个简单的答案似乎完全符合我的需要,除了“你想运行初始化吗……”唠叨框。如果有一个选项 somplace 可以自动启动内核并运行初始化单元,这将非常有用。

顺便说一下,我正在运行 6.0。

最佳答案

你可以试试这个:

在 C:\Program Files\Wolfram Research\Mathematica\7.0 创建一个名为 firstgo.m 的文件,其中包含:

UsingFrontEnd[Module[{},
file = "C:\\Temp\\Test.nb";
targetnotebook = NotebookOpen[file, Visible -> True];
SelectionMove[targetnotebook, Next, Cell];
SelectionEvaluate[targetnotebook];
NotebookSave[targetnotebook];
NotebookClose[targetnotebook];
]];

并在 C:\Temp 创建一个名为 Test.nb 的文件,其中包含:
Module[{x1=0},
Export["C:\\Program Files\\Wolfram Research\\Mathematica\\7.0\\sin.gif",
Plot[Sin[x],{x,0,6}]];
While[x1<1000000,
If[Mod[x1,100000]==0,Print["x1="<>ToString[x1]]];
x1++]]

然后在 Windows 命令控制台中运行:
cd C:\Program Files\Wolfram Research\Mathematica\7.0
MathKernel -noprompt -initfile firstgo.m

您将看到 Test.nb 在 Mathematica 目录中创建了一个名为“sin.gif”的文件。 Test.nb 还包含一些打印输出,但尽管在前端运行并在运行后保存,但没有保存打印输出。另外,我还没有想出一种在不中断前端进程的情况下退出内核的方法。

附录

如果您知道您的过程需要多长时间,您可以使用批处理文件在完成后关闭 Mathematica(为下一次运行做好准备)。此示例在关闭 Mathematica 之前暂停 20 秒。注意,为了演示目的,firstgo.m 现在被移到 C:\Temp。在我的文档中创建一个批处理文件 RunFirstGo.bat,其中包含:
@echo off
setlocal
PATH = C:\Program Files\Wolfram Research\Mathematica\7.0\;%PATH%
echo Launching MathKernel %TIME%
start MathKernel -noprompt -initfile "C:\Temp\firstgo.m"
ping localhost -n 20 > nul
echo Terminating MathKernel %TIME%
taskkill /F /FI "IMAGENAME eq MathKernel.exe" > nul
endlocal

RunFirstGo.bat 然后可以从 Windows 命令控制台运行,如下所示:
cd my documents
runfirstgo

或者,RunFirstGo.bat 可以作为计划任务运行(通过 Windows 控制面板)。

关于scripting - mathematica 从命令行启动前端和评估笔记本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7423179/

相关文章:

c# - 写一个C#脚本测试上百个域名

linux - 在可能具有重复文件名的目录中移动多个文件

python-3.x - 获取 Boto3 中具有特定标签和值的 EC2 实例列表

geometry - 如何制作圆的有向弧(或有向曲线)?

wolfram-mathematica - Times 和 NonCommutativeMultiply,自动处理差值

bash - 使用非整数的 Shell 循环?

wolfram-mathematica - 求解一个变量的混合方程

syntax - Mathematica符号和语法模块

wolfram-mathematica - 如何创建具有正确格式表达式的笔记本

resources - Mathematica 内核和前端的命令行参数