我正在使用机构A 的代码,其中包含其他内容,
adopath ++ $prog
use "$prog/subDirectory/otherFile.do"
实际的do文件是我尝试不改变的东西,正如我所知,在当前状态下,它将与机构A 一起使用。
我要定义自己的profile.do
以使其有效,我需要设置$prog
。我无法看到机构A 如何设置他们的profile.do
,以及它是否包含禁用的字符。 $prog
应该包含工作目录,在我的例子中是
global prog "C:\Users\foobar\Google Drive\Cloud\PhD\Projects\Labor Supply\LIAB_QM2_9310_v1_test_dta\prog"
当我学习in another question时,空格是禁止的字符,这就是为什么这个设置肯定不起作用的原因。我被建议使用双引号,
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
,允许我运行代码的其余部分而不会出错?use "$prog/subDirectory/otherFile.do"
?也就是说,如果我将其重写为use $prog"/subDirectory/otherFile.do"
,并且它继续在我的系统上工作,我保证它可以在旧代码工作的任何地方工作吗?我可以安全地交换这段代码,同时保证持续的功能吗?答案 0 :(得分:2)
第二好:
profile.do
global prog "C:\Users\foobar\Google Drive\Cloud\PhD\Projects\Labor Supply\LIAB_QM2_9310_v1_test_dta\prog"
机构A的代码
capture adopath ++ $prog
if (_rc != 0) adopath ++ "$prog"
use "$prog/subDirectory/otherFile.do"
真的很挑剔,你会用!=
代替==
和0
代替预期的错误代码;例如198
(适用于invalid syntax
)。
此解决方案尊重原始代码,如有必要,将充分处理 profile.do 文件产生的错误。
(同样,如果您的工作目录没有空白,这不会有问题。)