antistar 发表于 2022-7-5 22:16:16

更改文件属性

有人知道如何用LISP将几个文件的属性更改为只读吗?

BIGAL 发表于 2022-7-5 22:30:04

你可以用VLisp来做这件事,这在这里搜索之前已经被评论过了。

antistar 发表于 2022-7-5 22:43:47

感谢Bigal的回复。
我找到了这个例程,但它只适用于一个文件。我想一次更改几个文件。

(defun c:SetRO (/ afile fso ofile ro)
;;by stig.madsen
(cond
   ((and (setq aFile (getfiled "" "" "" 4))
         (setq fso (vlax-create-object "Scripting.FilesystemObject"))
         (setq oFile (vlax-invoke fso 'GetFile aFile))
    )
    (vlax-put-property oFile 'Attributes (setq ro (- 1 (logand 1 (vlax-get-property oFile 'Attributes)))))
    (princ (strcat "File set to " (nth ro '("Read-write" "Read-only"))))
    (vlax-release-object oFile)
    (vlax-release-object fso)
   )
)
(princ)
)

MSasu 发表于 2022-7-5 22:53:07

只需建立文件列表(请参阅VL DIRECTORy files函数)并使用FOREACH调整其属性。
调整文件属性的另一种方法是DosLIB包(免费软件)中的DOS_ATTRIB;请注意,这支持通配符。

CheSyn 发表于 2022-7-5 22:57:56

 
从脚本中调用LISP,并通过ScriptPro运行批处理,是否也可行?也许是一种更简单的方法?

BIGAL 发表于 2022-7-5 23:11:20

将更改脚本(defun c:SetRO(/afile-fso-ofile-ro)重新编写为(defun-SetRO(afile/fso-ofile-ro)
 
剧本
(加载“setro”)
(setro“C:\acadtemp\dwg1”)
(setro“C:\acadtemp\dwg2”)

asos2000 发表于 2022-7-5 23:24:55

看到这个了吗
http://www.lee-mac.com/bfind.html
页: [1]
查看完整版本: 更改文件属性