我是vb脚本的新手,我正在尝试移动只有特定扩展名的文件,例如txt或jpg。
我在这里有一个脚本:
filePath = directoryLocation + fileName + "*.txt|jpg"
fso.MoveFiles source,destination
当我运行它时,它会抛出错误Bad file name or number.
。
为什么通配符|
在这里不起作用?
感谢。
答案 0 :(得分:1)
我相信MoveFile
(以及类似的,例如CopyFile
)方法仅支持*
和?
通配符。查看MSDN文档,仅提及*
和?
- 尽管我无法立即找到任何明确说明支持哪些通配符的内容。
因此,在您的场景中,您只需要应用这两种模式:
filePath = fso.BuildPath(directoryLocation, fileName & "*.txt")
fso.MoveFile filePath, destination
filePath = fso.BuildPath(directoryLocation, fileName & "*.jpg")
fso.MoveFile filePath, destination
请注意,您需要处理没有匹配文件名时发生的错误:
如果源中使用的通配符与任何文件都不匹配,也会发生错误。 MoveFile方法在遇到的第一个错误时停止。在尝试发生错误之前,不会尝试回滚所做的任何更改。
答案 1 :(得分:0)
通配符不适用于构建路径或常规文件操作,您不能使用*或|
请改为尝试:
For Each file In fso.GetFolder(directoryLocation).Files
If LCase(file.Name) = LCase(filename & ".txt") Or LCase(file.Name) = LCase(filename & ".jpg") Then
fso.MoveFile file.Path, 'destination
End If
Next