我试图使用通配符将一个或多个文件从一个目录移动到另一个目录:
dim filesys
set filesys=CreateObject("Scripting.FileSystemObject")
If filesys.FileExists("Z:\somepath\somefile_*_A.xlsm") Then
filesys.MoveFile "Z:\somepath\somefile_*_A.xlsm", "Z:\destpath\"
End If
它不起作用......
注意:
这些目录中还有其他文件我不想移动。我想移动使用通配符返回的所有文件。必须使用VBS。
链接:
VBscript to move files from one directory to another
https://msdn.microsoft.com/en-us/library/2wcf3ba6%28v=vs.84%29.aspx
答案 0 :(得分:2)
Function ShowFolderList(folderspec)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)
Set fc = f.Files
For Each f1 in fc
s = s & f1.name
s = s & "<BR>"
Next
ShowFolderList = s
End Function
这是来自帮助。 FSO中没有通配符。你必须自己做。因此,测试f1.name是否符合您的要求,然后复制该文件。
答案 1 :(得分:1)
您无法通过通配符查找文件imo。 你可以自己做检查
For Each file In filessys.GetFolder("Z:\somepath").Files
If( <do your checks on file.Name, might be a regex or a simple string compare>) Then
filesys.MoveFile file, "Z:\destpath\"
End If
Next
根据您对文件格式的了解程度,只需检查rightmost characters是否总是&#34; _A.xlsm&#34;或者您可以使用regular expression