2013-06-22 70 views
5

A helpful FAQ from Stata mô tả đối số có thể được chuyển đến do tệp. tập tin do của tôi trông như thế này:Đối số dòng lệnh Stata ở chế độ hàng loạt

* 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 

Theo FAQ, kịch bản này có thể chạy bằng do filename.csv result.dta. Khi tôi chạy lệnh này từ bên trong Stata, mọi thứ đều hoạt động tốt. Tuy nhiên, chương trình rất dài, vì vậy tôi muốn chạy nó trong chế độ hàng loạt. Stata có another FAQ về chế độ hàng loạt.

Kết hợp thông tin từ các trang web, tôi gõ lệnh sau tại dấu nhắc Unix của tôi:

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

Stata khởi động, nhưng nó chấm dứt với các lỗi sau:

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

Một chút thử nghiệm kể tôi rằng Stata không bao giờ nhận được hai đối số khi tôi chạy chương trình ở chế độ hàng loạt. hướng giải quyết của vấn đề này là gì? (? Tức là làm thế nào để bạn vượt qua đối số vào một tập tin làm khi chạy nó trong chế độ hàng loạt)

+0

Dường như bạn không thể làm điều này. –

Trả lời

5

Các chủ đề dưới đây có thể hữu ích:

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

Trong Windows, nếu chương trình của tôi Test.do là:

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

tôi có thể chạy nó trong chế độ hàng loạt trong Windows bằng cách đơn giản gõ:

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

Và nó sẽ hiển thị (trong Stata):

Test

Script

Vì vậy, tôi tự hỏi liệu các nohup là những gì đang ngăn chặn chương trình của bạn từ làm việc.

Các vấn đề liên quan