我正在尝试编写一个脚本来删除不需要的临时文件。不过,我想专门针对.tmp。至少现在。所以我正在尝试编写一个 WQL 查询来返回一个集合,我可以使用该集合使用 FOR EACH 语句删除 C:\Users\\AppData\Local\Temp 中的所有 .tmp。我最近才开始学习 VBScript。但我有用 C/C++ 编写程序的经验(主要是“数学”程序)。
Cscript 似乎对查询本身没有问题。但是当我尝试对生成的集合使用 Count 方法时,cscript 返回错误:(17,1) Microsoft VBVScript 运行时错误:对象不支持此属性或方法:'colTempFiles.Count'。
我已经阅读了一些关于 WQL 的内容,认为可能由于某种原因我没有得到返回的集合。但我似乎找不到查询有什么问题。我在想也许我不应该从 FileSystemObject 中选择。但是我已经阅读了我能找到的关于它的内容,这似乎是正确的做法(尽管 MSDN 上确实没有很多有用的信息)。
无论如何,这是我目前拥有的脚本,没有评论。第二行是我目前没有使用的东西,但稍后会尝试使用,这样我就可以将变量定义为本地计算机的用户名,而不必专门指向本地 Temp 文件夹的路径。任何帮助将不胜感激:
strComputer = "."
strUser="adam"
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTempFiles = objWMIService.ExecQuery _
("SELECT * FROM FileSystemObject WHERE Name = '*.tmp' AND "_
& "NOT Name LIKE 'Prf%' AND Path LIKE 'C:\Users\adam\AppData\Local\Temp\%'")
colTempFiles.Count
For Each objFile in colTempFiles
Wscript.Echo objFile.Name
'Set objF=objFSO.GetFile("objFile.Path")
'objF.Delete(True)
Next