假设我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'
这不是有效的路径。
最简单的解决方案是使用a/
而不是a \
,就Stata而言,这将导致有效路径,并且不会充当转义符。
有关更多信息,请参见:Nicholas J. Cox(2008)Stata tip 65:当心反刺反斜线。Stata Journal,8(3):446--447。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句