2011-07-01 15 views
7

Recentemente ho trovato un po 'di old post il gruppo matematico in cui viene mostrato l'utilizzo di documenti opzioni della riga di comando -batchinput e -batchoutput:Ingresso e uscita batch in 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 

Ma quando si cerca di riprodurre questo comportamento in Windows ottengo solo il primo output stampato nella finestra della console. Che cosa sto facendo di sbagliato?

+1

Forse l'opzione '-script' (nuova in 8) è utile. Non è la stessa cosa però, 'Out =' le linee non verranno stampate. – Szabolcs

+0

@Szabolcs Si prega di fornire un esempio di utilizzo di questa opzione (o collegamento ad esso). Le etichette 'Out =' non vengono stampate con l'opzione '-batchoutput'. Qual è la differenza tra esso e '-script'? –

+1

@Aleksey, hai la versione 8? Con '-script' non viene stampato nulla a meno che il vostro programma non emetta un output esplicito (ad esempio usa' Stampa'). Si prega di vedere sotto "maggiori informazioni": http://reference.wolfram.com/mathematica/ref/program/MathKernel.html Basta eseguire 'math -script file.m' per eseguire i comandi da' file.m' come un " script". – Szabolcs

risposta

7

ho provato e ottenuto entrambi i numeri come output. TUTTAVIA, se l'ultimo comando non è seguito da un ritorno a capo, l'output è esattamente quello che hai postato!

Quindi, per favore verificare che si sta terminando la tua ultima riga con un ritorno a capo.

+2

Grazie! Il problema era che l'ultima riga non terminava con il carattere di nuova riga. –

+0

@Alexey Forse il 'carriage return 'non tornerà più http://www.cbc.ca/news/world/story/2011/04/26/typewriter-factory-closing.html –

+0

In realtà una nuova riga dopo l'ultima la linea non è abbastanza La maggior parte degli editor inserisce quella nuova dopo l'ultima riga anche se non la mostrano. Hai bisogno di una linea completamente vuota alla fine per farlo funzionare. – Szabolcs

Problemi correlati