2013-06-22 317 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 

按照FAQ,該腳本可以運行使用do filename.csv result.dta。當我在Stata中運行這個命令時,一切正常。該程序很長,但是,所以我想在批處理模式下運行它。關於批量模式,Stata有another FAQ

結合從這些網頁上的信息,我請在我的Unix提示符下輸入:

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

Stata的啓動,但它與下面的錯誤而終止:

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

一個小實驗告訴我認爲當我以批處理模式運行程序時,Stata從未接收到這兩個參數。這個問題的解決方案是什麼? (?也就是你怎麼在批處理模式下運行時,它傳遞參數給一個做文件)

+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

它將顯示(內塔塔):

Test

Script

所以我不知道nohup是什麼原因導致你的程序不能正常工作。