假设我在 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/

10-14 16:02