Имя пользователя:
Пароль:
 

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

Googler


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

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


Цитата Francyz:
У меня вот возник вопрос, а как можно в самих исключениях настройку сделать? »
исключение из исключений?.. но это уже список включаемых папок, т.е. совсем другая задача

Цитата Francyz:
Вот есть код, для размещения ярлыка на рабочем столе, т.е. можно также считать путь к рабочему и удалить там (и по аналогии сделать для папки "Мои Документы")? »
если не менять назначение функции, то где-то так (для Desktop):
Код: Выделить весь код
cInclFiles = Array( _
   "\\~\$[^\\]+$", _
   "\.(TMP|BAK|TEMP)$")

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

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

ClearDir WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop"), _
   cInclFiles, Array("^$")

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

   If Not IsObject(cInclFiles(0)) Then RegExpComp cInclFiles
   If Not IsObject(cExclFolders(0)) Then RegExpComp cExclFolders

   For iR=0 To UBound(cExclFolders)
      If cExclFolders(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(cInclFiles)
         If cInclFiles(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, cInclFiles, cExclFolders
   Next

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

   oD.Attributes = 0
   oD.Delete
End Sub

Sub RegExpComp(ByRef 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

Последний раз редактировалось amel27, 18-05-2010 в 14:34. Причина: ошибка в скрипте

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:17, 17-05-2010 | #9