2011-07-01 8 views
7

は最近、私は文書化されていないコマンドラインオプション-batchinput-batchoutputの使用が示されているMathGroup上のいくつかのold postが見つかりました:Mathematicaでのバッチ入出力は?

If test.mma contains the following commands: 

    a=2+2 
    b=10!; 
    a+b 

then, running Mathematica in batch mode, only output for the first and 
third commands goes to stdout: 

    # math -batchinput -batchoutput < test.mma 

    4 

    3628804 

をしかし、Windowsでこの現象を再現しようとしたとき、私は、コンソールウィンドウに印刷された第1出力のみを取得します。私は間違って何をしていますか?

+1

おそらく '-script'オプション(8の新機能)が役に立ちます。それは同じことではありませんが、 'Out ='行は印刷されません。 – Szabolcs

+0

@Szabolcsこのオプション(またはそのリンク)の使用例を挙げてください。 'Out ='ラベルは '-batchoutput'オプションでは表示されません。それと '-script'の違いは何ですか? –

+1

@アレクシー、バージョン8はありますか? '-script'では、あなたのプログラムが何らかの明示的な出力をしない限り(例えば、' Print'を使用する)何も印刷されません。 "more info"を参照してください:http://reference.wolfram.com/mathematica/ref/program/MathKernel.html '' math -script file.m''を実行して 'スクリプト"。 – Szabolcs

答えて

7

私はそれをテストし、出力として両方の数値を得ました。 いつもの最後のコマンドにキャリッジリターンが付いていない場合、出力はあなたが投稿したものとまったく同じです!

したがって、最後の行が改行で終了していることを確認してください。

+2

ありがとうございました!問題は、最後の行が改行文字で終わっていないことでした。 –

+0

@Alexeyおそらく 'キャリッジリターン'はもう戻らないhttp://www.cbc.ca/news/world/story/2011/04/26/typewriter-factory-closing.html –

+0

実際には最後の改行ラインでは不十分です。ほとんどのエディタは、たとえそれが表示されていなくても、改行を最後の行の後に挿入します。この作業を行うには、最後に余分な空行が必要です。 – Szabolcs

関連する問題