我试图编写代码来检查特定文件是否存在于c:\ users *。*(=所有用户目录)的任何子文件夹\ DESKTOP中的文件夹和子文件夹中。并且,如果文件存在于任何文件夹中,则脚本将删除该文件。
Option Explicit
Dim Shell, FSO, DesktopPath
Dim objShortcutFile, objDesktopFolder, objDesktopSubFolder, Folder, strSysDrive
Set Shell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
strSysDrive = Shell.ExpandEnvironmentStrings("%SystemDrive%")
Set Folder = FSO.GetFolder(strSysDrive & "\Users")
msgbox Folder & "\sample1.lnk"
For Each objDesktopFolder in Folder.SubFolders
If FSO.FileExists(Folder & "\sample1.lnk") Then
FSO.DeleteFile Folder & "\sample1.lnk"
msgbox "success"
Else
msgbox "not existing"
End If
Next
Folder
是C:\Users
文件夹对象;objDesktopFolder
是直接位于中的每个文件夹的文件夹对象C:\Users
,例如C:\ Users \ user1-而不是子文件夹的其他级别,例如C:\ Users \ user1 \ Desktop(因此这是一个误导性的名称,因为它不是桌面文件夹)。
如果只想直接在桌面上查看,则只需更改此行(以及使用该路径的任何其他行): If FSO.FileExists(Folder & "\sample1.lnk") Then
到: If FSO.FileExists(FSO.BuildPath(objDesktopFolder.Path, "Desktop\sample1.lnk")) Then
如果您还想浏览桌面上可能存在的每个文件夹,则必须执行相同的逻辑,例如
Option Explicit
Dim Shell, FSO, DesktopPath
Dim objShortcutFile, objDesktopFolder, objDesktopSubFolder, Folder, strSysDrive
Dim filepath, userfolder, desktop, subfolder, filename
Set Shell = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
strSysDrive = Shell.ExpandEnvironmentStrings("%SystemDrive%")
Set Folder = FSO.GetFolder(strSysDrive & "\Users")
msgbox Folder & "\sample1.lnk"
filename = "sample1.lnk"
For Each userfolder in Folder.SubFolders
desktop = FSO.BuildPath(userfolder.Path, "Desktop")
filepath = FSO.BuildPath(desktop, filename)
If FSO.FolderExists(desktop) Then
' Delete file on desktop
If FSO.FileExists(filepath) Then
FSO.DeleteFile filepath, True
MsgBox "Success: deleted " & filepath
Else
MsgBox filepath & " doesn't exist"
End If
' Check folders on desktop
For Each subfolder In FSO.GetFolder(desktop).SubFolders
filepath = FSO.BuildPath(subfolder.Path, filename)
If FSO.FileExists(filepath) Then
FSO.DeleteFile filepath, True
MsgBox "Success: deleted " & filepath
End If
Next
End If
Next
那只会在直接在桌面上的文件夹中查找文件(当然,也会在桌面上查找文件)。如果您想进一步查看子文件夹级别,那么最好创建一个单独的子文件夹,该子文件夹使用递归遍历所有级别的子文件夹。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句