首页 > 解决方案 > 自动检测是否使用 GUI 或批处理模式

问题描述

我在 GUI 中使用 Stata,并使用 slurm 集群以批处理模式运行脚本。需要在每个用例中以不同方式建立文件路径,但我希望有一个定义所有路径的 .do 文件。

有没有办法编写一个可证伪的if语句,如果从 GUI 运行可以评估为真,如果批量运行则可以评估为假?

类似于

glob using_gui = T
if $using_gui == T {
    glob dir "/mydir"
} else {
    glob dir "D:/mydir"
}

但是 where$using_gui被自动确定为TorF

标签: pathstatabatch-processing

解决方案


正如上面链接的 statalist 问题中所回答的那样,可以这样c(mode)回答

if "`c(mode)'" == "batch" {
    glob dir "/mydir" 
} 
else {
    glob dir "D:/mydir" 
}

给猫剥皮的方法有很多种。查看help creturn类似选项。


推荐阅读