我有一个profile.do
,其中说明了
global prog "C:\Users\foobar\Google Drive\Cloud\PhD\Projects\Labor Supply\LIAB_QM2_9310_v1_test_dta\prog"
然后我有一个不同的stata different.do
文件,其中应该设置此变量
adopath ++ $prog
然而,这变得无法解决。所以我试图找出错误的根源:
. display $prog
C:\Users\foobar\Google invalid name
使用'
代替"
没有帮助:
. global prog 'C:\Users\sdaro\Google Drive\Cloud\PhD\Projects\Labor Supply\LIAB_QM2_9310_v1_test_dta\prog'
. display $prog
'C:\Users\sdaro\Google invalid name
r(198);
似乎它正在尝试用某些东西替换Drive
,但我没有得到什么。我该如何解决这个问题?
答案 0 :(得分:2)
你的路径有空白,所以你需要周围的引号。 定义宏时使用的引号应该是分隔符。调用后,display
和adopath
会将其删除。
global prog "C:\Users\foobar\Google Drive\Cloud\PhD\Projects\Labor Supply\LIAB_QM2_9310_v1_test_dta\prog"
display "$prog"
adopath ++ "$prog"
如果您不允许更改adopath $prog
,则可以使用双引号保护原始引号:
global prog ""C:\Users\foobar\Google Drive\Cloud\PhD\Projects\Labor Supply\LIAB_QM2_9310_v1_test_dta\prog""
display $prog
adopath ++ $prog
请注意您收到的原始错误:
. display $prog
C:\Users\foobar\Google invalid name
因为你没有使用引号,Stata假设了一个变量名,你所拥有的是非法名称(不能有:
或\
或空格。