假设我在目录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
。 {{1}}命令?
提前致谢。
答案 0 :(得分:5)
问题是\
既可以作为转义字符,也可以作为Windows文件路径的一部分。
当您在Stata中键入包含本地宏的内容时,Stata的第一个操作是评估该宏,即查看其内容并用该内容替换宏。有时(很少,但可能发生)你想要阻止它。这就是逃避角色的用途。
所以Stata在你的第二个例子中看到的是
c:\test`file'
这不是有效路径。
最简单的解决方案是使用/
而不是\
,这会导致Stata的有效路径,并且不会充当转义字符。
了解更多信息: Nicholas J. Cox(2008)Stata提示65:谨防背后的反斜杠。 The Stata Journal ,8(3):446--447。