【问题标题】:backup only some files using vbs [duplicate]使用vbs仅备份一些文件[重复]
【发布时间】:2021-01-02 22:16:02
【问题描述】:

我想使用 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 

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

【问题讨论】:

  • 那么您是否拥有文件夹 C:\Users\" & strUser & "\Desktop\vbs\ 和 E:\test2 的权限?并尝试将目的地设为 "E:\test2\"
  • @lostbard 是的,因为如果我尝试复制整个文件夹,它会起作用

标签: vbscript backup xlsx


【解决方案1】:

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

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

【讨论】:

  • objFSO.CopyFolder "C:\Users\" & strUser & "\Desktop\vbs*.xlxs", "E:\test2\" 它说找不到路径。
  • 你错过了通配符之前的 \ - 我有一个错字 - 使用正确的文件扩展名
  • objFSO.CopyFolder"C:\Users\" & strUser & "\Desktop\vbs*.xlsx","E:\test2", 找不到真正的路径(windows 8.1 pro)跨度>
  • 查看上面的修改
猜你喜欢
  • 1970-01-01
  • 2014-11-16
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 2018-09-29
相关资源
最近更新 更多