首先我建议你在标题中要写明确求助什么内容。这个标题太笼统了。
抽空给你做了一个比较完整的例子:

- [FONT=courier new]
- ([color=#800040]defun[/color] qf_FSO_CopyFile (src dest [color=#0000ff]/[/color] fso catchit)
- ([color=#0000ff]setq[/color] catchit
- ([color=#0000ff]vl-catch-all-apply[/color]
- (function
- ([color=#800040]lambda[/color] ()
- ([color=#0000ff]setq[/color] fso
- ([color=#0000ff]vlax-create-object[/color] [color=#ff00ff]"Scripting.FileSystemObject"[/color])
- )
- ([color=#0000ff]if[/color] ([color=#0000ff]or[/color] ([color=#0000ff]not[/color] ([color=#0000ff]findfile[/color] dest)) ; 目标不存在
- ([color=#0000ff]and[/color]
- ([color=#0000ff]findfile[/color] dest) ; 目标文存在但比较旧
- (> ([color=#0000ff]vlax-get-property[/color]
- ([color=#0000ff]vlax-invoke-method[/color]
- fso
- 'getfile
- ([color=#0000ff]findfile[/color] src)
- )
- 'datelastmodified
- )
- ([color=#0000ff]vlax-get-property[/color]
- ([color=#0000ff]vlax-invoke-method[/color]
- fso
- 'getfile
- ([color=#0000ff]findfile[/color] dest)
- )
- 'datelastmodified
- )
- )
- )
- )
- ([color=#0000ff]progn[/color]
- ([color=#0000ff]if[/color] ([color=#0000ff]findfile[/color] dest)
- ([color=#0000ff]vl-file-delete[/color] dest)
- )
- ([color=#0000ff]vlax-invoke-method[/color] fso 'copyfile ([color=#0000ff]findfile[/color] src) dest -1)
- ([color=#0000ff]princ[/color] [color=#ff00ff]"\n"[/color])
- ([color=#0000ff]princ[/color] ([color=#0000ff]findfile[/color] dest))
- ([color=#0000ff]princ[/color] [color=#ff00ff]"已更新."[/color])
- )
- )
- ([color=#0000ff]vlax-release-object[/color] fso)
- ) ;end of [color=#800040]lambda[/color]
- ) ;end of function
- nil
- )
- )
- ([color=#0000ff]if[/color] ([color=#0000ff]vl-catch-all-error-p[/color] catchit)
- nil
- 'T
- )
- )
- ([color=#800040]defun[/color] copyfile (src dest)
- ([color=#0000ff]if[/color] ([color=#0000ff]null[/color] ( qf_FSO_CopyFile src dest))
- [color=#008000] ;; 如果采用FSO复制文件失败的话可以在这里定义其它复制方式[/color]
- [color=#008000] ;; (vl_copyfile src dest) [/color]
- nil
- )
- )
- ([color=#800040]defun[/color] installpstyles (src [color=#0000ff]/[/color] acadver dest)
- ([color=#0000ff]setq[/color] acadver ([color=#0000ff]atof[/color] ([color=#0000ff]getvar[/color] [color=#ff00ff]"acadver"[/color])))
- ([color=#0000ff]if[/color] ([color=#0000ff]and[/color] (>= acadver 15.0) (< acadver 16.0))
- [color=#008000] ; AutoCAD 2000/2000i/2002[/color]
- ([color=#0000ff]setq[/color] dest ([color=#0000ff]strcat[/color] ([color=#0000ff]vl-filename-directory[/color] ([color=#0000ff]findfile[/color] [color=#ff00ff]"acad.exe"[/color]))
- "\\Plot Styles\"
- src
- )
- )
- [color=#008000] ; else AutoCAD 2004+[/color]
- ([color=#0000ff]setq[/color] dest ([color=#0000ff]strcat[/color] ([color=#0000ff]getvar[/color] [color=#ff00ff]"ROAMABLEROOTPREFIX"[/color])
- "Plot Styles\"
- src
- )
- )
- )
- ( copyfile src dest)
- )
- [color=#008000];; 正式安装这些STB[/color]
- ([color=#0000ff]mapcar[/color] ' installpstyles
- '([color=#ff00ff]"acad.stb"[/color] [color=#ff00ff]"mystb.stb"[/color] [color=#ff00ff]"CTB2STB.stb"[/color]
- )
- )
- [/FONT]
|