2013-06-22 9 views
5

helpful FAQ from Stata वर्णन करता है कि तर्क do फ़ाइलों को पास किया जा सकता है। मेरे do फ़ाइल इस तरह दिखता है:बैच मोड में स्टेटा कमांड लाइन तर्क

* program.do : Program to fetch information from main dataset 
args inname outname 

save `outname', emptyok // file to hold results 
insheet using `inname', comma clear names case 

// a bunch of processing 

save `outname', replace 

पूछे जाने वाले प्रश्न के अनुसार, इस स्क्रिप्ट को चलाने जा सकती है do filename.csv result.dta का उपयोग कर। जब मैं इस आदेश को स्टाटा के भीतर से चलाता हूं, तो सब कुछ ठीक काम करता है। कार्यक्रम लंबा है, हालांकि, मैं इसे बैच मोड में चलाने के लिए चाहता हूं। बैटा मोड के बारे में Stata another FAQ है।

इन वेबपेजों से जानकारी के संयोजन, मैं अपने यूनिक्स प्रॉम्प्ट पर निम्न लिखें:

$ nohup stata -b do program.do filename.csv result.dta & 

Stata शुरू होता है, लेकिन यह निम्न त्रुटि के साथ समाप्त हो जाता है:

. save `outname', emptyok // file to hold results 
invalid file specification 
r(198); 

एक छोटी सी प्रयोग बताता है जब मैं बैच मोड में प्रोग्राम चलाता हूं तो मुझे स्टेटा दो तर्क प्राप्त नहीं कर रहा है। इस समस्या का समाधान क्या है? (? यानी कि कैसे आप जब यह बैच मोड में चल रहा एक फाइल करने के लिए करते हैं तर्क पारित करते हैं)

+0

ऐसा प्रतीत होता है कि आप ऐसा नहीं कर सकते हैं। –

उत्तर

5

धागा नीचे मददगार हो सकता है:

http://www.stata.com/statalist/archive/2012-09/msg00609.html

Windows में, अगर मेरे कार्यक्रम Test.do है:

args a b 
display "`a'" 
display "`b'" 

मैं बस टाइप करके Windows में बैच मोड में चला सकते हैं:

"c:\Stata13\stata.exe" /e do "c:\Scripts\Test.do" Test Script

और यह (Stata भीतर) को प्रदर्शित करेगा:

Test

Script

तो मुझे आश्चर्य है कि क्या nohup क्या काम करने से अपने कार्यक्रम रोक रहा है।

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