因此,我尝试编写一行内容,以检查是否存在目录,并且仅在错误的情况下尝试创建目录。在Statalist上找到此商品:
local name test_directory
cd C:\
capture confirm file "./`name'/nul" // check if `name' subdir exists
if _rc { // _rc will be >0 if it doesn't exist
!md "`name'"
}
// my do file
save "C:/`name'/current_data.dta" // optionally add -,replace-
对于我的应用程序来说,总体看起来还不错,但是我正在努力将其转换为Mac兼容语法。
local name test_directory
cd ~/
capture confirm file "./`name'/*"
// check if `name' subdir exists
if _rc {
mkdir "`name'"
}
有关如何正确执行此操作的任何建议?
您可以尝试依靠cd
命令的返回码。这是confirmdir
(来自SSC)采取的方法:
local somedir /home/roberto/Desktop/test
quietly capture cd `"`somedir'"'
if (_rc) display as text "return code `=_rc'; do something, like mkdir"
else display as text "could change dir; the dir exists"
这会发出信号
cd无法更改为您键入的目录,因为它不存在,受保护或不是目录
资料来源:search r(170)
。
如果计划在条件if {...} else {...}
语句后发出多个命令,则需要语法。请参阅help ifcmd
。
如果您不想以其他目录结尾,则可以将当前目录保存在开头
local cwd `"`c(pwd)'"'
并在完成后切换回它:
quietly cd `"`cwd'"'
它应该在MS Windows和Unix类型的OS上都可以工作。(但是我无法在MS Windows上进行测试。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句