11

(Windows)コマンドプロンプトからmathematicaフロントエンド(GUI)を起動し、ユーザーの操作なしでノートブックを評価する方法はありますか?

mathematica.exeは-runと-initfileオプションを取りますが、math.exeと同じようには機能しません。(-run'' << file.m''は、たとえば'' << file.m''という名前のファイルを開きます)


ありがとう。最初の答えは有望に見えますが、FrontEndObject::notavailを取得しますフロントエンドは利用できません

(ドキュメントによると、ちなみに「UseFrontEnd」です。)

おそらくパスの問題ですが、$FrontEndLaunchCommandを設定した後でも喜びはありません。

Re:初期化セル-「初期化を実行しますか?」というnagボックスを除いて、その単純な答えは私が必要としていることを正確に実行しているように見えます。カーネルを自動的に起動し、初期化セルを実行するオプションsomplaceがある場合は、知っておくと非常に便利です。

ちなみに私は6.0を実行しています。

4

5 に答える 5

10

あなたはこれを試すことができます:

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のコントロールパネルを介して)スケジュールされたタスクとして実行することもできます。

于 2011-09-15T09:01:37.740 に答える
5

あはは...!!

Needs["JLink`"]; 
$FrontEndLaunchCommand="C:\\Program Files\\Wolfram Research\\Mathematica\\6.0\\Mathematica.exe";
ConnectToFrontEnd[];
UseFrontEnd[Module[{}, ...

フォローアップ..完全を期すために---上記の$FrontEndLaunchCommandにより、GUIが起動し、評価(私が望んでいたこと)を観察できるようになります。デフォルトでは、フロントエンドをバックグラウンドサーバーモードで実行するため、フロントエンド機能にアクセスできますが、実行されていることを確認できません。

于 2011-09-15T15:28:45.527 に答える
2

評価を行うのはフロントエンドではなく、カーネルです。MathematicaScriptを使用して自動化できます。

于 2011-09-14T21:38:08.537 に答える
1

トピックがまだアクティブかどうかはわかりませんが、「初期化セルの警告」の問題で停止している場合は、でこれを「Flase」に変更できます。

オプションインスペクター->ノートブックオプション->評価オプション->InitializationCellWarning->False

于 2012-05-17T08:21:58.573 に答える
1

これが特定のノートブック用である場合、ノートブックの関連するセルにプロパティInitializationCellを設定してみましたか?それとも、ノートブックでこれを実行しますか?後者の場合、Sjoerdの答えの方がうまくいきます。

于 2011-09-14T22:20:51.037 に答える