假设我在 hello.txt
目录中有一个名为 c:\test\
的文件,那么以下在 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 提示 65:当心反斜杠。 Stata 杂志,8(3):446--447。
http://www.stata-journal.com/article.html?article=pr0042
关于stata - 在Stata中使用locals构建路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22063307/