1028695446 发表于 2019-10-22 21:51:21

【手动加载】自动加载指定文件目录下的lsp、vlx和fas文件

;自动加载文件夹中的lsp,fas,vlx文件
(defun loadlspfile(Folder_path / nn f1)
      (if Folder_path
                (vl-catch-all-apply
                        '(lambda ( / nn f1)
                                 (setq nn
                                       (append
                                                 (xingle_GetFile Folder_path "*.lsp")
                                                 (xingle_GetFile Folder_path "*.fas")
                                                 (xingle_GetFile Folder_path "*.vlx")
                                       )
                                 )
                                 (foreach f1 nn
                                       (vl-catch-all-apply 'load (list (strcat Folder_path "\\" f1)))
                                 )
                         )
                )
      )
)
;语法(vl-directory-files)
;功能:列出给定目录中的所有文件
;说明
;1)参数 directory 为字符串,指定要收集文件的目录。若未指定该参数或参数为 nil,那么vl-directory-files 使用当前目录。
;2)参数 pattern 为字符串,包含文件名的 DOS 方式。如果未指定该参数或参数为 nil,vl-directory-files 假定为 "*.*"。
;3)directories 为整数型,指定返回的表中是否包含路径名。可以指定下列值之一:
;-1仅列出目录。
;0   列出文件和目录(缺省值)。
;1   仅列出文件。
;返回值:
;文件和路径列表。若没有符合指定方式的文件,则返回 nil。
;;pattern类型为list
(defun xingle_GetFile (Dire pattern / SubFile)
(setq SubFile (vl-remove-if
                                                                        (function (lambda (x) (member x '(".." "."))))
                                                                        (vl-directory-files Dire pattern 1)
                                                                )
)
)
;(xingle_GetFile "Z:\\CAD图库" "*.lsp")
(defun load_Folder_app (path)      
      (if (findfile path)
                (progn
                        (loadlspfile path)
                        (princ (strcat path "\n中的lsp,FAS,VLX文件已加载完成>>>>>>>>"))
                )
                (princ (strcat "\n错误!!!\n请检查路径" path "是否正确<<<<<<<<"))
      )
      (princ)
)
;;
(defun c:888();;设置快捷命令,手动加载,快捷命令自行修改下
      (load_Folder_app "Z:\\mini\\Autoload\\liuxin")
      ;(load_Folder_app "Z:\\CAD插件")
      ;;可以像这样多添加几个路径,注意将windows的目录路径中"\"换成"\\",或这把"\"换成"/"
)
(C:888);;这样写,程序加载这个段代码时,自动激活命令


xxyyzzlg 发表于 2024-8-1 15:55:40

感谢分享,有这个方便多了。
有点奇怪的是把包含这些代码的LSP放到AP自动加载下,会卡死。
而把这个LSP放到某个插件的自动加载目录下,就能正常加载。

xj6019 发表于 2019-12-1 06:36:00

能手动加载,自动加载没看懂呢还是咋回事,不能自动加载,还是我不会啊,能教一下怎样使用吗,谢谢

xj6019 发表于 2019-11-20 22:44:34

这也可以啊   功能不错

sunny_8848 发表于 2019-10-26 13:51:11

学习下,多谢楼主分享

花样年华 发表于 2019-11-1 16:37:01

逍遥无声 发表于 2019-11-7 00:51:04

nochao 发表于 2019-12-1 22:22:52

感谢无私分项,受用了!

帝都划水王 发表于 2023-7-18 17:50:44

学习下,多谢楼主分享

xujie1234 发表于 2023-8-6 14:02:58

是个好东西,试用了,

Anlimer 发表于 2023-8-9 21:35:17

感谢无私分项
页: [1] 2
查看完整版本: 【手动加载】自动加载指定文件目录下的lsp、vlx和fas文件