2011-07-01 12 views
7

Recientemente he encontrado algunos old post el grupo matemático, donde se muestra el uso de opciones de línea de comandos indocumentados -batchinput y -batchoutput:¿Entrada y salida por lotes en 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 

Pero cuando se trata de reproducir este comportamiento en Windows consigo sólo la primera salida impresa en la ventana de la consola. ¿Qué estoy haciendo mal?

+1

Quizás la opción '-script' (nueva en 8) le sea útil. No es lo mismo, las líneas 'Out =' no se imprimirán. – Szabolcs

+0

@Szabolcs Por favor, brinde un ejemplo del uso de esta opción (o enlace a ella). 'Out =' las etiquetas no se imprimen con la opción '-batchoutput'. ¿Cuál es la diferencia entre él y '-script'? –

+1

@ Aleksey, ¿tienes la versión 8? Con '-script' nada se imprime a menos que su programa haga algún resultado explícito (por ejemplo, use' Print'). Por favor, vea debajo de "más información": http://reference.wolfram.com/mathematica/ref/program/MathKernel.html Simplemente ejecute 'math -script file.m' para ejecutar los comandos de' file.m' como un " guión". – Szabolcs

Respuesta

7

Lo probé y obtuve ambos números como salida. SIN EMBARGO, si al último comando no le sigue un retorno de carro, el resultado es exactamente lo que ha publicado.

Por lo tanto, compruebe que finaliza su última línea con un retorno de carro.

+2

¡Gracias! El problema era que la última línea no terminaba con el carácter de nueva línea. –

+0

@Alexey Quizás el 'retorno de carro' ya no regrese http://www.cbc.ca/news/world/story/2011/04/26/typewriter-factory-closing.html –

+0

En realidad una nueva línea después de la última línea no es suficiente. La mayoría de los editores insertan esa nueva línea después de la última línea, incluso si no lo muestran. Necesitas una línea vacía adicional al final para que esto funcione. – Szabolcs

Cuestiones relacionadas