2011-07-01 10 views
7

हाल ही में मैं MathGroup पर कुछ old post पाया जहां गैर-दस्तावेजी कमांड लाइन विकल्प -batchinput और -batchoutput के उपयोग दिखाया गया है:गणित में बैच इनपुट और आउटपुट?

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

शायद '-स्क्रिप्ट' विकल्प (8 में नया) आपके लिए उपयोगी है। हालांकि यह वही बात नहीं है, 'आउट = 'लाइनों को मुद्रित नहीं किया जाएगा। – Szabolcs

+0

@Szabolcs कृपया इस विकल्प के उपयोग का एक उदाहरण दें (या इसके लिए लिंक)। 'आउट =' लेबल '-बैचआउटपुट' विकल्प के साथ मुद्रित नहीं होते हैं। इसके बीच और 'स्क्रिप्ट' के बीच क्या अंतर है? –

+1

@ एलेक्सी, क्या आपके पास संस्करण 8 है? '-स्क्रिप्ट' के साथ कुछ भी मुद्रित नहीं किया जाता है जब तक कि आपका प्रोग्राम कुछ स्पष्ट आउटपुट नहीं करता (उदा। 'प्रिंट' का उपयोग करता है)। कृपया "अधिक जानकारी" के अंतर्गत देखें: http://reference.wolfram.com/mathematica/ref/program/MathKernel.html 'file.m' से आदेशों को चलाने के लिए बस' 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

संबंधित मुद्दे