You can pass arguments to a do file. This is 
explicit in the on-line help and explained 
in more detail at [U] 16.6. 
The main idea is that the first, second, 
... argument are mapped to local macros
1, 2, ... . 
So for example 
do frog "c:/project/data" 
could work with 
-------------- frog.do
cd "`1'" 
...
--------------
The successive arguments are delimited 
by white space, except that quotes bind. 
So in 
do frog "c:/windows people prefer long names with spaces"  
"c:/windows people prefer long names with spaces"  
is all the first argument. 
Nick 
[email protected] 
Sergio Correia
 
> Usually, when writing a do file, the first lines are like this:
> 
> clear
> set mem..
> set more off..
> cd c:/project/data  // !!!!!!
> 
> The problem is that, when using the do files on different computers,
> or giving the data + do-files to a colleague, they have to change each
> do-file to match the location of the data (ie, change cd
> c:/project/data to cd "c:/my documents/john/reviews/data")
> 
> My question is, is there a way to do something like
> 
> cd `currentdofile'
> 
> Where `currentdofile' gives the path to the do file currently running.
> 
> Assuming that the do files are in a folder like 
> c:/project/prg , then I can
> cd ..
> cd data
> 
> And I don't longer have to update locations if the path changes.
> 
> I'm aware that other languages do this, but i don't know if there is
> any way to do this in Stata.
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/