请教一个lisp使用FSO复制文件的问题
D盘已经有个文件夹“d:\abc”,里面已有多个文件,现在想复制到“c:\123”文件夹下。代码如下 :(defun c:ccdd (/ FSO)
;;;复制文件,参考资料https://codeantenna.com/a/vfVkZPl6WT
(vl-load-com)
(setq FSO (vlax-create-object "scripting.FileSystemObject"))
;;;(vlax-dump-object FSO t)
(setqsourcePath"d:\\abc"
destinationPath"c:\\123"
)
;;;(princ (vlax-invoke-method FSO 'FolderExists destinationPath))
(if (= :vlax-false (vlax-invoke-method FSO 'FolderExists destinationPath))
(vlax-invoke-method FSO 'CreateFolder destinationPath)
(progn
;;; (alert "文件夹已存在。")
)
)
(setq sourcePath (vlax-invoke FSO 'BuildPath sourcePath "\\*.*"))
;;;(alert sourcePath)
(princ (vlax-invoke-method
FSO'CopyFile sourcePath destinationPath T))
(vlax-release-object FSO) ;释放对象(结束进程)
)现在的问题是只运行成功一次,再次运行就出错。也就是不能实现覆盖。除非删除c:\123文件夹。求大神解答谢谢。
(vlax-invoke-method FSO'CopyFile sourcePath destinationPath T)
修改为(vlax-invoke-method FSO'CopyFile sourcePath destinationPath :vlax-true) 单个文件可以用vl-file-copy,多个没试过 llsheng_73 发表于 2023-6-3 10:18
(vlax-invoke-method FSO'CopyFile sourcePath destinationPath T)
修改为(vlax-invoke-method FSO'Co ...
把t改为:vlax-true成功了,但是CAD假死一分钟左右。可能电脑太旧了。 操作系统的工作最好交给操作系统,何必自己造轮子呢。 改为:vlax-true还是不行,在笔记本上以为可以了,今天来上班办公室的电脑还是提示
; 错误: Automation 错误。未提供说明。 vormittag 发表于 2023-6-5 09:12
操作系统的工作最好交给操作系统,何必自己造轮子呢。
我这里 是多台电脑,想做插件自动更新的功能,以前是运行vbs复制,现在不行了,管理员权限也不行,还经常被360杀进程,所以才想这办法。
页:
[1]