Stata:在变量中存储带有禁止字符的路径名
我正在研究机构A的代码,其中包括Stata:在变量中存储带有禁止字符的路径名,stata,Stata,我正在研究机构A的代码,其中包括 adopath ++ $prog use "$prog/subDirectory/otherFile.do" 实际的do文件是我尽量不更改的,因为我知道在其当前状态下,它将与机构A一起工作 我要定义我自己的配置文件。请执行以使其正常工作,我需要在其中设置$prog。我看不到机构A如何设置他们的配置文件.do,以及它是否包含禁止使用的字符$prog应该包含工作目录,在我的例子中是 global prog "C:\Users\foobar\Google Drive
adopath ++ $prog
use "$prog/subDirectory/otherFile.do"
实际的do文件是我尽量不更改的,因为我知道在其当前状态下,它将与机构A一起工作
我要定义我自己的配置文件。请执行
以使其正常工作,我需要在其中设置$prog
。我看不到机构A如何设置他们的配置文件.do
,以及它是否包含禁止使用的字符$prog
应该包含工作目录,在我的例子中是
global prog "C:\Users\foobar\Google Drive\Cloud\PhD\Projects\Labor Supply\LIAB_QM2_9310_v1_test_dta\prog"
据我所知,空格是被禁止的字符,这就是为什么这个设置肯定不起作用。有人建议我用双引号
global prog ""C:\Users\foobar\Google Drive\Cloud\PhD\Projects\Labor Supply\LIAB_QM2_9310_v1_test_dta\prog""
在某种程度上,这些程序运行良好,adopath++$prog
现在运行顺利。但是,第二个命令use“$prog/subDirectory/otherFile.do”
现在包含一个错误。这是我的问题
- 第一个最佳选择:是否有一种不同的方法来定义
,使我能够在不出错的情况下运行代码的其余部分$prog
- 第二好:是否有安全的方法重写
?也就是说,如果我将其重写为使用“$prog/subDirectory/otherFile.do”
,并且它继续在我的系统上工作,我是否保证它在旧代码工作的地方工作?我可以安全地交换那段代码,同时保证功能的持续性吗use$prog”/subDirectory/otherFile.do“
- 第二好:
profile.do
A机构代码
如果你真的很挑剔,你可以用
=代码>用于=
,而0
用于预期的错误代码;例如198
(对于无效语法
)
此解决方案尊重原始代码,如有必要,将充分处理您的profile.do文件产生的错误
(同样,如果您的工作目录没有空格,这也不会是一个问题。)
global prog "C:\Users\foobar\Google Drive\Cloud\PhD\Projects\Labor Supply\LIAB_QM2_9310_v1_test_dta\prog"
capture adopath ++ $prog
if (_rc != 0) adopath ++ "$prog"
use "$prog/subDirectory/otherFile.do"