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

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

Новый участник


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

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


А может что-то типа этого. Очень нужна помощь уже неделю мучаюсь. Нужен именно скрипт.



Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\Рабочий стол\"
objFinishFolder = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "C:\RECYCLER\"
arrPath =array("objStartFolder" & "\Links") 'папки которые исключаем

Set objFolder = objFSO.GetFolder(objstartfolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
If DateDiff("D", objFile.DateLastModified, Now) > 1 Then ' проверка файлов на старость
Log (objFolder.Path & "\" & objFile.Name & " - " & objFile.DateLastModified)
objFile.Attributes = 0
objFile.Move objFinishFolder
End If
Next

ShowSubfolders objFSO.GetFolder(objStartFolder)
Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
Set objFolder = objFSO.GetFolder(subfolder.Path)
p=false
i=lbound(arrpath)
WHILE (p=false) and (i<=ubound(arrpath))
if (objfolder.path=arrpath(i) ) then
p=true
end if
i=i+1
WEND
if (not p) then
' Wscript.Echo objfolder.path & " - " & "udalat` mozna"
' 1) проверить файлы на старость
Set colFiles = objFolder.Files
For Each objFile in colFiles
If DateDiff("D", objFile.DateLastModified, Now) > 1 Then ' проверка файлов на старость
Log (objFolder.Path & "\" & objFile.Name & " - " & objFile.DateLastModified)
objFile.Attributes = 0
objFile.Move objFinishFolder
End If
Next
' 2) проверить каталог на пустоту
If objFolder.Subfolders.Count > 0 then
ShowSubFolders SubFolder
End If
If subFolder.Files.Count > 0 AND subFolder.Subfolders.Count > 0 then
' MsgBox "Directory " & subFolder & "- ne pusta."
else
Log(subFolder.Path & " - " & subFolder.Datecreated)
objFSO.DeleteFolder(subFolder.Path)
End If
End If
Next
end sub

'функция для создания log-файла. он создается рядом со скриптом, имя - дата запуска скрипта.
Function Log(strLineToLog)
Const ForReading = 1, ForWriting = 2
Dim fso, f, FileLog

Set fso = CreateObject("Scripting.FileSystemObject")
FileLog = Left(WScript.ScriptName,(Len(WScript.ScriptName)-4)) & "_" & DatePart("yyyy",Date) & "_" & DatePart("m",Date) & "_" & DatePart("d",Date) & "." & "log"
Set f = fso.OpenTextFile(FileLog, 8, True)
f.Write strLineToLog & vbCrLf
f.Close
End Function

Отправлено: 17:53, 13-03-2014 | #7