vbscript - 使用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"
解决方案
您不需要迭代每个文件,您可以执行以下操作:
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
推荐阅读
- python - 认知中过滤器的可变格式
- javascript - 覆盖类属性的 toString() - javascript
- java - 错误:尝试解析字符串日期时,无法在索引 0 处解析文本“1/31/2020”
- scala - scala java.time.ZonedDateTime.now 时区错误
- arrays - 更新/添加属性到 T-SQL 中的 json 数组
- c++ - 未读取类原型
- android - 即使在底层服务停止后也保持前台服务的通知
- c++ - 在模板化父类中定义的结构的初始化
- regex - 只有存在两个匹配项之一时,是否可以执行“前瞻”正则表达式匹配?
- racket - 如何测试我的球拍快速检查发生器?