移动具有特定扩展名的文件

时间:2014-09-07 06:11:09

标签: regex vbscript

我是vb脚本的新手,我正在尝试移动只有特定扩展名的文件,例如txt或jpg。

我在这里有一个脚本:

filePath = directoryLocation + fileName + "*.txt|jpg"
fso.MoveFiles source,destination

当我运行它时,它会抛出错误Bad file name or number.

为什么通配符|在这里不起作用?

感谢。

2 个答案:

答案 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