Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   VBS удаление файлов, по маске и папок из указанных расположений. (http://forum.oszone.net/showthread.php?t=308383)

Karotin 24-11-2015 15:05 2578472

VBS удаление файлов, по маске и папок из указанных расположений.
 
Доброго времени суток.
Задача: Чистить папки пользователя, например \Downloads, \Documents, \Desktop. Не удалять ярлыки.
Код ересь, но работает. Загвоздка в указании нескольких расположений. Про Array знаю, но не могу прицепить.
Код:

Set SHELL = CreateObject ("WScript.Shell")
Set SF = SHELL.SpecialFolders
set wshell = wscript.createobject("wscript.shell")
set appshell = createobject("shell.application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
set fso = createobject("scripting.filesystemobject")
user_path = wshell.expandenvironmentstrings("%userprofile%")     
user_path1 = user_path & "\Desktop"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(user_path1)
Set colSubfolders = objFolder.Subfolders
Set objParentFolder = objFSO.GetFolder(user_path1)

ShowSubfolders objParentFolder
Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
Set objSubFolder = objFSO.GetFolder(Subfolder.Path)
ShowSubFolders Subfolder
For Each efile in objSubFolder.Files
Set gFILE = objFSO.GetFile (efile)
gFILE.Attributes = 0
Next
Next
End Sub
For Each objSubfolder in colSubfolders
objFSO.DeleteFolder objFSO.GetFolder(user_path1)+"\"+objSubfolder.Name
Next

For Each efile in objFolder.Files
Set gFILE = objFSO.GetFile (efile)
fEXT = objFSO.GetExtensionName (efile.Path)
If LCase (fEXT)<>"lnk" then
gFILE.Attributes = 0
objFSO.DeleteFile efile
End If
Next



Время: 22:56.

Время: 22:56.
© OSzone.net 2001-