首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Stata -命令返回文件路径或do文件的位置。

Stata -命令返回文件路径或do文件的位置。
EN

Stack Overflow用户
提问于 2014-01-28 21:09:35
回答 2查看 2.6K关注 0票数 3

我今天对此感到困惑--使用do文件中的命令动态地设置Stata中的工作目录是可能的?例如(至少在PC上),您可以根据正在运行的文件的位置设置命令行中的目录,使用:

代码语言:javascript
运行
复制
%cd%

因此,在批处理文件开头的命令(如下面的命令)将自动将目录设置为保存批处理文件的位置:

代码语言:javascript
运行
复制
cd %cd%

它在用户中运行得很好。对于do (检测/输出到局部变量,打开的do-文件保存在运行它的机器上的位置)有任何方法吗?这样做的目的是获得以下更流畅的版本,当多个用户被同步到Dropbox文件夹并且特定的文件路径在不同用户之间不相同时,就会检测出正确的用户路径:

代码语言:javascript
运行
复制
#delim ; 
if "`c(username)'"=="Steve" { ; cd "C:/Users/Steve/Documents/My Dropbox/ProjectName/" ; }; 
else if "`c(username)'"=="otherperson" {; cd "/Users/otherpersonusingmac/ProjectName/";};
else if "`c(username)'"=="anotherperson" {; cd "/anotherpersonsDropboxfilepath/ProjectName/";};
# delim cr ;

谢谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-29 14:50:24

我不认为有一步解决方案,但您可以将全局宏定义添加到每台机器上的profile.do文件中。例如,将以下内容添加到profile.do文件中。

代码语言:javascript
运行
复制
global DROPBOX "C:/Users/richa_000/Dropbox"
global SKYDRIVE "C:/Users/richa_000/SkyDrive"

然后在脚本中使用这些宏来cd

代码语言:javascript
运行
复制
. cd $DROPBOX
C:\Users\richa_000\Dropbox

. cd $SKYDRIVE
C:\Users\richa_000\SkyDrive

在每台机器的profile.do文件上指定正确的路径。

票数 1
EN

Stack Overflow用户

发布于 2015-01-31 01:45:34

据推测,do文件位于当前工作目录中。如果是这样的话,您可以将cre转速值c(pwd)保存到一个本地或全局宏中,然后调用该宏:

全球当前"c(Pwd)‘“

使用$currentdir/mydata.dta,清除

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21416894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档