Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Working with the name of the do file


From   Michael Barker <mdb96statalist@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Working with the name of the do file
Date   Thu, 2 May 2013 10:50:12 -0400

If you are only interested in creating a log file named after the
current do-file, you   could execute the do-file in batch mode. Batch
mode creates a log-file named after the do-file by default. So just
replace

do step1.do

with

shell "C:\Program Files\Stata12\StataMP.exe" /b do step1.do

replacing C:\Program Files\Stata12\StataMP.exe with the full path to
your Stata executable.

Mike


On Wed, May 1, 2013 at 11:37 AM, Robert Picard <picard@netbox.com> wrote:
> I have written a program that does this (get the do-file's name from
> within the do-file) and much more. It is called -project- and is
> currently available from my web site by typing in Stata:
>
> net from http://robertpicard.com/stata
>
> and clicking on the -project- link. Here's the short blurb from the
> description page:
>
> project automates the execution of do-files, skipping unchanged
> do-files with unchanged dependencies (files used and created by
> each do-file). All do-files are logged automatically. Stata's
> current working directory is dynamically changed to match the
> directory of the current do-file. Files in the do-file's
> directory can always be accessed by file name while files
> elsewhere can be accessed using a file path that is relative to
> the project's main directory. Since full path names are not used,
> the whole project directory can be moved or shared with someone
> else without having to edit any file paths.
>
> project can verify replication by comparing all files created by
> the project (data, tables, graphs, log files, etc.) against
> those produced by a replication run. Project files can be listed
> in various ways, backed up, and shared with others. project can
> also clean up the project directory by moving any file not linked
> to the project to an archive directory.
>
> A toy project that runs some examples from the version 12 Stata
> reference manuals is included in the ancillary files below.
> A reduced version that runs with Stata 9 is also included.
>
> On Tue, Apr 30, 2013 at 6:20 PM, Eric DeRosia <ederosia@byu.edu> wrote:
>> I want to make my Stata do files easier to use and maintain.  Is there a way
>> to access the name of the do file from within the do file itself, perhaps as
>> a macro or a system variable?  Let me give an example of what I mean.  I
>> have a do file such as the following:
>>
>> filename: step1.do
>> -------------------
>>    /// some Stata code here
>> log using "step1.log", replace
>>    /// more Stata code here
>> display "Output from step1.do"
>>    /// more Stata code here
>> graph export "step1.emf", replace as(emf)
>>
>>
>> In this example, if I want to re-use the code by copying the file and
>> creating "step 2.do", my current workflow process is to edit the file and
>> replace all the instances of "step1" in the file with "step2". Beyond the
>> obvious inconvenience of editing the file every time I re-use the code, I
>> occasionally forget to make the change, so running step2.do accidentally
>> overwrites step1.log, etc.  I'm looking for a better way.
>>
>> I think something like the following would solve my problem.  Is there a way
>> to accomplish this in Stata?
>>
>>
>> filename: step1.do
>> -------------------
>>    /// some Stata code here
>> log using "`_name_of_the_do_file'.log", replace
>>    /// more Stata code here
>> display "Output from `_name_of_the_do_file'.do"
>>    /// more Stata code here
>> graph export "`_name_of_the_do_file'.emf", replace as(emf)
>>
>> In the code above, I made up "`_name_of_the_do_file'" out of thin air to
>> illustrate what I would like to do.  My hope is to find a string that
>> resolves to "step1.do" based on the filename.  (In this example, I didn't
>> deal with the fact that ".do" that would be at the end of the string, but
>> it's clear to me how I would deal with that once I had access to the
>> filename.)  Is there any way for Stata to get access to the name of the do
>> file?
>>
>> In case it matters, I'm using Stata 12 in a Windows environment.
>>
>> Thank you in advance for any help you can offer on this!
>>
>> - Eric
>>
>> --
>> Eric DeRosia, Ph.D.
>> Assistant Professor
>> Business Management
>> Marriott School of Management
>> Brigham Young University
>> 671 TNRB
>> Provo, Utah 84602
>>
>> *
>> *   For searches and help try:
>> *   http://www.stata.com/help.cgi?search
>> *   http://www.stata.com/support/faqs/resources/statalist-faq/
>> *   http://www.ats.ucla.edu/stat/stata/
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/faqs/resources/statalist-faq/
> *   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index