2013-06-22 11 views
5

Ein helpful FAQ from Stata beschreibt, dass Argumente an do Dateien übergeben werden können. Meine do Datei sieht wie folgt aus:Stata Befehlszeilenargumente im Stapelmodus

* 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 

Nach der FAQ, dieses Skript ausführen do filename.csv result.dta verwenden werden können. Wenn ich diesen Befehl in Stata ausführe, funktioniert alles einwandfrei. Das Programm ist jedoch lang, daher möchte ich es im Batch-Modus ausführen. Stata hat another FAQ über Batch-Modus.

die Informationen von den Internetseite Kombination, gebe ich folgendes an meiner Unix-Eingabeaufforderung:

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

Stata startet, aber es endet mit dem folgenden Fehler:

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

Ein wenig Experimentieren erzählt Ich, dass Stata nie die zwei Argumente erhält, wenn ich das Programm im Batch-Modus ausführen. Was ist die Lösung für dieses Problem? (? Das heißt, wie Sie Argumente an eine do-Datei passieren kann, wenn es im Batch-Modus ausgeführt wird)

+0

Es scheint, dass Sie dies nicht tun können. –

Antwort

5

Der Thread unten kann hilfreich sein:

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

In Windows, wenn mein Programm Test.do ist:

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

ich es im Batch-Modus in Windows, indem sie einfach ausführen kann:

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

Und es wird angezeigt (in Stata):

Test

Script

So frage ich mich, ob die nohup ist, was Ihr Programm ist zu verhindern, dass zu arbeiten.