首页 > 解决方案 > 使用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 行 char 1 "Object required: "" 上引发错误

有任何想法吗?

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 

但是这个给了我“第 9 行第 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"

标签: vbscriptbackupxlsx

解决方案


您不需要迭代每个文件,您可以执行以下操作:

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

推荐阅读