vbscript - VBS 错误 - 删除文件时权限被拒绝
问题描述
我正在编写一个简单的脚本来删除“我的文档”目录中的所有文本文件。该脚本工作正常,但在删除最后一个文件后,它给出了 Permission Denied(错误代码:800A0046)。例如,如果我在目录中有 3 个 .txt 文件,则在删除第 3 个文件后出现错误。我认为这不是权限问题,因为在这种情况下,不会删除任何文件。这是我所缺少的非常基本的东西。我添加了 1 秒的延迟,让我可以看到文件一个接一个地被删除。这是脚本:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFolder = CreateObject("Wscript.Shell").specialfolders("MyDocuments")
Dim objFile
For each objFile in objFolder.Files
If LCase(objFSO.GetExtensionName(objFile.name)) = "txt" Then
objFSO.DeleteFile(objFile), True
Wscript.Sleep 1000
End If
Next
解决方案
您应该更改此行以设置objFolder:
objFolder = CreateObject("Wscript.Shell").specialfolders("MyDocuments")
到
Set objFolder = objFSO.GetFolder(CreateObject("Wscript.Shell").SpecialFolders("MyDocuments"))
这是一个快速测试,用于列出我的文档文件夹中的所有文本文件:
Option Explicit
Dim objFSO,objFile,objFolder,MyDoc,F
Set objFSO = CreateObject("Scripting.FileSystemObject")
MyDoc = CreateObject("Wscript.Shell").SpecialFolders("MyDocuments")
Set objFolder = objFSO.GetFolder(MyDoc)
For each objFile in objFolder.Files
If LCase(objFSO.GetExtensionName(objFile.name)) = "txt" Then
F = F & objFile & vbcrlf
End If
Next
wscript.echo F
推荐阅读
- python - 将 Pytorch CUDA 张量快速写入 GPU 上的内存映射文件
- python - How to generate a number of codes with print but without being the same codee?
- vue.js - Vue. js CORS issues, backend data blocked by CORS policy
- facebook-graph-api - 如何在 Facebook Graph API 中获取我的页面后跟的组列表
- python-3.x - DRF 在 POST 请求中使用字段值而不是默认值 (pk)
- sql - 使用sql对数据进行分类
- javascript - mapDispatchToProps 没有将 actionCreators 分派到所需的组件
- r - r - How to change the order of a factor within another factor - ggplot2
- python - How to make 3d (4 variable) ternary (pyramid) plot in R or Python?
- angular - 如何根据用户的输入即时过滤对象数组