2011-07-01 18 views
7

Ostatnio znalazłem trochę old post na MathGroup gdzie korzystanie z nieudokumentowanych opcji wiersza polecenia -batchinput i -batchoutput pokazano:Dane wejściowe i wyjściowe wsadowe w 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 

Ale gdy próbuje odtworzyć to zachowanie pod Windows I dostać tylko pierwsze wyjście drukowane w oknie konsoli. Co ja robię źle?

+1

Być może opcja '-script' (nowa w 8) jest dla ciebie przydatna. To jednak nie to samo, linie 'Out =' nie będą drukowane. – Szabolcs

+0

@Szabolcs Podaj przykład użycia tej opcji (lub łącza do niej). Etykiety 'Out =' nie są drukowane z opcją '-batchoutput'. Jaka jest różnica między nim a "-script"? –

+1

@Aleksey, masz wersję 8? Z '-script' nic nie jest drukowane, chyba że twój program wykonuje jakieś jawne dane wyjściowe (np. Używa' Print'). Zobacz "więcej informacji": http://reference.wolfram.com/mathematica/ref/program/MathKernel.html Po prostu uruchom 'math -script file.m', aby uruchomić polecenia z' file.m' jako " scenariusz". – Szabolcs

Odpowiedz

7

Przetestowałem to i otrzymałem obie liczby jako wynik. JEDNAK, jeśli ostatnie polecenie nie następuje po znaku powrotu karetki, dane wyjściowe są dokładnie takie, jakie zostały opublikowane!

Sprawdź, czy ostatnia linia kończy się znakiem powrotu karetki.

+2

Dziękuję! Problem polegał na tym, że ostatnia linia nie kończyła się znakiem nowej linii. –

+0

@Alexey Być może "powrót karetki" nie będzie już zwracany http://www.cbc.ca/news/world/story/2011/04/26/typewriter-factory-closing.html –

+0

W rzeczywistości nowa linia po ostatnim linia to za mało. Większość edytorów wstawia znak nowej linii po ostatnim wierszu, nawet jeśli go nie wyświetlają. Aby to działało, potrzebujesz na końcu całej dodatkowej pustej linii. – Szabolcs

Powiązane problemy