kucha007 发表于 2023-9-7 09:51:11

【K:SearchAndLoadFunc】搜索并加载路径下的程序

本帖最后由 kucha007 于 2023-9-7 09:57 编辑

做了个自用的工具箱,程序更新改名后还得调整加载函数。
干脆程序全部扔到指定路径下面,直接搜索并加载得了:
注:此函数不搜索子文件夹中的程序

(vl-load-com)
(defun K:SearchAndLoadFunc (FuncPath / FuncTypes Error i FileNamLst FileNam FilePath xx)
;(setq FuncPath "C:\\FuncPath");搜索程序的目录
(setq FuncTypes '("*.LSP" "*.FAS" "*.VLX"));搜索源程序的类型
(setvar "SECURELOAD" 0);从所有位置加载文件(信任不警告)
(setq Error Nil);清空变量,避免串门
(repeat (setq i (length FuncTypes))
    (if (setq FileNamLst (vl-directory-files FuncPath (nth (setq i (1- i)) FuncTypes) 1))
      (mapcar
      '(lambda (FileNam / FilePath)
            (setq FilePath (strcat FuncPath "\\" FileNam))
            (if (vl-catch-all-error-p (vl-catch-all-apply'load (list FilePath)));捕捉到了错误
               (setq Error (cons FilePath Error))
            )
         )
      FileNamLst
      )
    )
);加载程序并搜集错误
(if Error ;如果有发生错误
    (progn
      (princ "\n——★★★ 以下文件未加载成功,请检查! ★★★——")
      (foreach xx Error (princ (strcat "\n--> " xx)))
    )
)
(princ)
)



用法:

(K:SearchAndLoadFunc "C:\\FuncPath")


xq4u 发表于 2023-9-7 16:26:15

沙发啊,好代码,谢谢楼主分享。
页: [1]
查看完整版本: 【K:SearchAndLoadFunc】搜索并加载路径下的程序