使用vbs只备份一些文件

backup only some files using vbs

我想使用 vbscript 自动备份我的 excel 文件。 它可以复制整个文件夹,但我只想复制 xlsx 文件。 这是到目前为止的代码:

Dim objFSO, objFolder, evrFiles
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set evrFiles = objFolder.Files
For Each evrFile in evrFiles
    If InStr(1, evrFile.Name, ".xlsx", vbBinaryCompare) > 0 Then
        objFSO.CopyFile "C:\Users\Home\Desktop\vbs\" & evrFile.Name, "E:\test2"
    End If

Next

WScript.Quit

它在第 5 行字符 1 上抛出错误“需要的对象:”“

有什么想法吗?

LE:我也试过了:

Dim objFSO, objFolder
Set wshNetwork = CreateObject("WScript.Network")
strUser = wshNetwork.Username
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Users\" & strUser & "\Desktop\vbs")
Set evrFiles = objFolder.Files
For Each evrFile in evrFiles
    If InStr(1, evrFile.Name, ".xlsx", vbBinaryCompare) > 0 Then
        objFSO.CopyFile "C:\Users\" & strUser & "\Desktop\vbs\" & evrFile.Name, "E:\test2"
    End If
Next
WScript.Quit 

但是这个给我“Permission denied on line 9 char 3”

这个有效(复制整个文件夹)但我只想要 excel 个文件。

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set wshNetwork = CreateObject("WScript.Network")
strUser = wshNetwork.Username


objFSO.CopyFolder"C:\Users\" & strUser & "\Desktop\vbs","E:\test2"

你不需要遍历每个文件,你可以这样做:

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set wshNetwork = CreateObject("WScript.Network")
strUser = wshNetwork.Username

objFSO.CopyFile "C:\Users\" & strUser & "\Desktop\vbs\*.xlsx", "E:\test2\"

您可能还想在复制时设置覆盖标志,目标文件夹中将已有现有文件。

objFSO.CopyFile "C:\Users\" & strUser & "\Desktop\vbs\*.xlsx","E:\test2", True