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中运行此命令时,一切正常。但是程序很长,所以我想以批处理模式运行它。 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永远不会收到两个参数。这个问题的解决方案是什么? (即在批处理模式下运行参数时如何将参数传递给do文件?)
答案 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
是否会阻止你的程序运行。