在多个USB驱动器上删除文件夹VBS

问题描述:

我正在寻找同时删除多个USB驱动程序上的文件夹。在多个USB驱动器上删除文件夹VBS

sDeleteFolder = "\Test" 
Set oFS = CreateObject("Scripting.FileSystemObject") 
Set dUSBKeys = ScanForUSBKeys() 
For Each oUSBKey in dUSBKeys.Keys 
    If Left(oUSBKey, 1) = "\" Then 
     sKey = oUSBKey 
    Else 
     sKey = oUSBKey & "\" 
    End If 
    oFS.DeleteFolder sdeleteFolder, sKey 
Next 
Set dUSBKeys = Nothing 
Set oFS = Nothing 

MsgBox "Done Del all the folder from USB Drivs", vbOKOnly+VBINformation+VBSystemModal, "DONE" 
Function ScanForUSBKeys() 
    Set oWMI = GetObject("winmgmts:\\.\root\cimv2") 
    Set dTemp = CreateObject("Scripting.Dictionary") 
Set cDisks = oWMI.ExecQuery("Select InterfaceType,MediaType,PNPDeviceID,DeviceID,Size from Win32_DiskDrive") 
For Each oDisk in cDisks 
    If InStr(LCase(oDisk.InterfaceType),"usb") > 0 AND InStr(LCase(oDisk.MediaType),"removable") > 0 _ 
     AND InStr(LCase(oDisk.PNPDeviceID),"blackberry") = 0 AND InStr(LCase(oDisk.PNPDeviceID),"ipod") = 0 _ 
     AND NOT oDisk.PNPDeviceID = "" Then 
     Set cDrivePartitions = oWMI.ExecQuery("ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" & _ 
           oDisk.DeviceID & "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition") 
     For Each oDrivePartition in cDrivePartitions 
      Set cDriveLetters = oWMI.ExecQuery("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" & _ 
           oDrivePartition.DeviceID & "'} WHERE AssocClass = Win32_LogicalDiskToPartition") 
      For Each oDriveLetter in cDriveLetters 
       dTemp.Add oDriveLetter.DeviceID, 1 
      Next 
      Set cDriveLetters = Nothing 
     Next 
     Set cDrivePartitions = Nothing 
    End If 
Next 
Set cDisks = Nothing 
Set ScanForUSBKeys = dTemp 
Set dTemp = Nothing 
Set oWMI = Nothing 

端功能

我不断收到一个错误:类型不匹配:oFs.DeleteFolder'
行12字符5

感谢您抽出时间来阅读我的文章。

  1. 研究的文档的.DeleteFolder
  2. 确保当你调用子
  3. 使用.BuildPath你传递的完整路径(不只是“\测试”)及相应的布尔(不像oUSBKey字符串)构建完整路径
  4. 使用VBScript的良好功能。例如为:Option Explicit,声明SPATH为const
  5. 不要使用Set x = Nothing白白
+0

谢谢你的信息。希望可以设置补丁。但试图同时从4个或更多的USB驱动程序删除文件夹。我会研究你的答案。 – user2559533

试试这个代码

sDeleteFolder = "\Test" 
For Each oUSBKey in dUSBKeys.Keys 
    sKey = oUSBKey & sDeleteFolder 
    oFS.DeleteFolder sKey 
Next 
+0

需要尝试一下。我正在寻找只删除一个文件夹。测试目录只。 。 – user2559533

+0

多数民众赞成在不同的问题...你不需要通配符来删除一个文件夹。 – Susilo

+0

我尝试更新代码。谢谢你的工作非常感谢 – user2559533