2013-06-22 3 views
5

A helpful FAQ from Stata описывает, что аргументы могут быть переданы do файлам. Мой do файл выглядит следующим образом:Аргументы командной строки Stata в пакетном режиме

* 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

И это будет отображаться (в пределах Stata):

Test

Script

Так что я удивляюсь, что nohup ли что мешает вашей программе работать.