nyistjz 发表于 2022-11-5 10:44:10

不用C:怎么判断命令存在并执行

我定义了这样的一个函数
(defun c:hh()(command-s "line"))

正常情况下,我用
(cond (c:hh (c:hh)) (t (princ "命令不存在")))
可以判断命令是否存在并执行

如果我不想用前面的C:,并把命令用参数表示,写成下面这个样子,就不行了
(setq cmd "hh")
(cond ((strcat "c:" cmd) ((strcat "c:" cmd))) (t (princ "命令不存在")))

请问高手,如果不想用前面的c:,如何判断命令是否存在并执行?

lijiao 发表于 2022-11-5 11:15:28

(cond
((eval (read (strcat "c:" cmd)))
   (eval (read (strcat "(c:" cmd ")")))
   )
   (t
    (princ "命令不存在")
    )
)

nyistjz 发表于 2022-11-5 14:04:27

lijiao 发表于 2022-11-5 11:15
(cond
((eval (read (strcat "c:" cmd)))
   (eval (read (strcat "(c:" cmd ")")))


菜卷鱼 发表于 2022-11-7 08:42:05

(member (strcase "c:命令名") (atoms-family 1))
页: [1]
查看完整版本: 不用C:怎么判断命令存在并执行