使用局部变量在Stata中构造路径

使用局部变量在Stata中构造路径,stata,Stata,假设我在目录c:\test\中有一个名为hello.txt的文件,那么在Stata中运行以下程序时不会出现问题: local folder "c:\test" confirm file "`folder'\hello.txt" 但以下情况不会发生 local folder "c:\test" local file "hello.txt" confirm file "`folder'\`file'" 如何将多个本地文件组合到一个类似于c:\test\hello.txt的路径中,该路径可用于co

假设我在目录
c:\test\
中有一个名为
hello.txt
的文件,那么在Stata中运行以下程序时不会出现问题:

local folder "c:\test"
confirm file "`folder'\hello.txt"
但以下情况不会发生

local folder "c:\test"
local file "hello.txt"
confirm file "`folder'\`file'"
如何将多个本地文件组合到一个类似于
c:\test\hello.txt
的路径中,该路径可用于
confirm file
命令


提前感谢。

问题是
\
既可以作为转义字符,也可以作为Windows文件路径的一部分

在Stata中键入包含本地宏的内容时,Stata的第一个操作是评估该宏,即查看其内容并用该内容替换该宏。有时(很少,但可能发生)你想阻止这种情况。这就是转义字符的用途

那么Stata在第二个例子中看到的是

c:\test`file'
这不是有效的路径

最简单的解决方案是使用
/
而不是
\
,这会产生一个有效的路径,就Stata而言,它不会充当转义字符

有关更多信息,请参阅: Nicholas J.Cox(2008)Stata tip 65:当心背后暗箭伤人的反斜杠。《国家统计杂志》,8(3):446-447


非常感谢您及时准确的回答。