使用LISP创建文件夹
大家好:我正在更新我的一些旧代码,我想使用shell命令,你知道为什么吗。
我需要创建一个文件夹,下面是创建文件夹num\u br所写的内容:
(setq commd(strcat“md”) (setq commd(strcat“md”) 对不起,我两次尝试发布代码都失败了,你可以看到我显然是新手。其思想是使用vl命令创建文件夹。那是哪个命令? 从开发者帮助>AutoLISP参考 vl mkdir可以创建单个文件夹,因此我使用以下内容创建目录结构:
;;-------------------=={ Make Directory }==-------------------;;
;; ;;
;;Creates a directory structure ;;
;;------------------------------------------------------------;;
;;Author: Lee McDonnell, 2010 ;;
;; ;;
;;Copyright © 2010 by Lee McDonnell, All Rights Reserved. ;;
;;Contact: Lee Mac @ TheSwamp.org, CADTutor.net ;;
;;------------------------------------------------------------;;
;;Arguments: ;;
;;dir - the directory to create ;;
;;------------------------------------------------------------;;
;;Returns:T if directory creation is successful, else nil ;;
;;------------------------------------------------------------;;
(defun LM:MakeDirectory ( dir / MakeDirectory folders )
;; © Lee Mac 2010
;; (LM:MakeDirectory "C:\\Folder\\Subfolder")
(vl-load-com)
(defun MakeDirectory ( root folders )
(if folders
(
(lambda ( dir ) (vl-mkdir dir)
(MakeDirectory dir (cdr folders))
)
(strcat root "\\" (car folders))
)
)
)
(if (setq folders (LM:str->lst (vl-string-translate "/" "\\" dir) "\\"))
(MakeDirectory (car folders) (cdr folders))
)
(vl-file-directory-p dir)
)
;;-------------------=={ String -> List }==-------------------;;
;; ;;
;;Separates a string into a list of strings using a ;;
;;specified delimiter string ;;
;;------------------------------------------------------------;;
;;Author: Lee McDonnell, 2010 ;;
;; ;;
;;Copyright © 2010 by Lee McDonnell, All Rights Reserved. ;;
;;Contact: Lee Mac @ TheSwamp.org, CADTutor.net ;;
;;------------------------------------------------------------;;
;;Arguments: ;;
;;str - string to process ;;
;;del - delimiter by which to separate the string ;;
;;------------------------------------------------------------;;
;;Returns:A list of strings ;;
;;------------------------------------------------------------;;
(defun LM:str->lst ( str del / pos )
;; © Lee Mac 2010
(if (setq pos (vl-string-search del str))
(cons (substr str 1 pos) (LM:str->lst (substr str (+ pos 1 (strlen del))) del))
(list str)
)
)
非常感谢,它正按我所希望的那样完美地工作。
页:
[1]