Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Francyz:
в самой функции Sub ClearDir переменная sFldr осталась. я попытался заменить по аналогии на objDrive.DriveLetter, но результата так же не было, может я чего упустил »
переменные в скрипте и в функции - это разные переменные, хоть и называются одинаково, так их менять ни в коем случае нельзя, ошибка была в другом - в букве диска objDrive.DriveLetter не хватало двоеточия:
Код: Выделить весь код
cInclFiles = Array( _
   "\\~\$[^\\]+$", _
   "\.(TMP|BAK|TEMP)$")

cExclFolders = Array( _
   "^.:\\Documents and Settings$", _
   "^.:\\Program Files$", _
   "^.:\\System Volume Information$", _
   "^.:\\WINDOWS$" )

RegExpComp cInclFiles
RegExpComp cExclFolders

Set oFSO = CreateObject("Scripting.FileSystemObject")

For Each oDrive In oFSO.Drives
   If oDrive.DriveType=2 And oDrive.IsReady Then
      ClearDir oDrive.DriveLetter & ":", cInclFiles, cExclFolders
   End If
Next

Sub ClearDir(sFldr, cIncl, cExcl)
   On Error Resume Next
   Dim oD, cF, cD, oI, iR

   For iR=0 To UBound(cExcl)
      If cExcl(iR).Test(sFldr) Then Exit Sub
   Next

   Set oD = oFSO.GetFolder(sFldr)
   Set cF = oD.Files
   Set cD = oD.SubFolders

   For Each oI In cF
      For iR=0 To UBound(cIncl)
         If cIncl(iR).Test(oI.Path) Then
            WScript.Echo "File  : " & oI.Path
            oI.Attributes = 0
            oI.Delete
            Exit For
         End If
      Next
   Next

   For Each oI In cD
      ClearDir oI.Path, cIncl, cExcl
   Next

   If oD.Size >0 Then Exit Sub
   WScript.Echo "Folder: " & oD.Path

   oD.Attributes = 0
   oD.Delete
End Sub

Sub RegExpComp(aReg)
   Dim iReg, sReg

   For iReg=0 To UBound(aReg)
      sReg = aReg(iReg)
      Set aReg(iReg) = CreateObject("VBScript.RegExp")
      aReg(iReg).Pattern = sReg
      aReg(iReg).IgnoreCase = True
   Next
End Sub
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:16, 15-05-2010 | #6