新手学习,问题初浅,望海涵。1、程序目的
复制指定目录下的所有匹配文件,并粘贴到指定目录。
2、陈述2-2、VBScript参考手册--“VBScript 运行时库参考”--“方法”--“CopyFile方法”。
文中提到其语法为:"object.CopyFile source, destination[, overwrite]",其中"object"为必选项,且应为FileSystemObject 对象的名称。2-3、已尝试程序
Dim fso
Set fso=CreatObject("Scripting.FileSystemObject")
fso.CopyFile("C:\123\*.doc","C:\321\")
运行结果:doc文件未能被成功复制
在网上查找,有朋友说应该把括号去掉,测试后依然不行。
劳驾各位前辈指点指点,谢谢!
复制指定目录下的所有匹配文件,并粘贴到指定目录。
2、陈述2-2、VBScript参考手册--“VBScript 运行时库参考”--“方法”--“CopyFile方法”。
文中提到其语法为:"object.CopyFile source, destination[, overwrite]",其中"object"为必选项,且应为FileSystemObject 对象的名称。2-3、已尝试程序
Dim fso
Set fso=CreatObject("Scripting.FileSystemObject")
fso.CopyFile("C:\123\*.doc","C:\321\")
运行结果:doc文件未能被成功复制
在网上查找,有朋友说应该把括号去掉,测试后依然不行。
劳驾各位前辈指点指点,谢谢!
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile "c:\123\*.doc", "c:\321", True '自己建一个 c:\321文件夹
Set fs = Nothing
MsgBox "OK"
End Sub
"COPY"方法的格式为:"object.Copy destination[, overwrite] "。其中"object"项必须是File或者Folder对象的名称,而通过GetFile可以获得所需要的File对象名称。"CopyFile"方法中也需要"object",但与"Copy"方法不一样的是,其"object"项目应为FileSystemObject对象的名称。根据《手册》中"CreatFolder"方法给出的示例,可以通过例如"Set fso=CreatObject("Scripting.FileSystemFile")"获得名称为"fso"的"FileSystemObject"对象。另外,在《手册》中对"CopyFile"的描述是:将一个或多个文件从某位置复制到另一位置,并明确说明可以在source参数的路径最后一个组成部分中使用通配符。(其语法为object.CopyFile source, destination[, overwrite] )
通过实验证明以下程序执行无误
Dim fso ,f
Set fso = CreatObject("Scripting.FileSystemObject")
Set f = fso.GetFile("C:\123\123.doc")
f.copy("C:\321\321.doc")同时实验证明以下程序执行无效
Dim fso
Set fso=CreatObject("Scripting.FileSystemObject")
fso.CopyFile("C:\123\*.doc","C:\321\") 鄙人以为,在实验1中,f为通过GetFile获得了对象故称为“有效的对象的名称”。但是令人费解的是,在对GetFile的说明中提到,其Object项目是FileSystemObject的名称,与"CopyFile"方法的差距仅在“对象”一词上。
如果CreatObject只是定义了一个FileSystemObject名称的话,那么应该如何使这个名称成为一个有效的“对象的名称”呢?
Set Folder1 = fso.GetFolder("c:\123\")
For Each File1 In Folder1.Files
If lcase(right(File1.Name,4)) <> ".doc" Then
fso.CopyFile("C:\123\"& File1.Name,"C:\321\" & File1.Name)
Next