![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Удаление папок меньше заданного размера |
|
Любой язык - [решено] Удаление папок меньше заданного размера
|
Пользователь Сообщения: 55 |
Из-за совсем поверхностных знаний скриптовых инструментов гугл меня не привел к нужному результату.
тот же diruse может выводить только папки больше заданного размера, его я сразу отмел. В одной из тем на этом форуме было это: SetLocal enabledelayedexpansion Set DirProg=c:\dirname For /F "skip=4 tokens=1-3" %%a IN ('Dir "%DirProg%" /-C /S /A:-D') Do ( If !flag!==1 Set dirsize=%%c If "%%b"=="файлов:" (Set flag=1) Else (Set flag=0) ) Echo !dirsize! Pause>nul Следующий скрипт показался мне наиболее подходящим для докручивания: DirName = "c:\dirname" ' DirName = "" ' Если скрипт в исследуемой папке и не хочется указывать к ней путь If Len(DirName)=0 Then DirName=Replace(WScript.ScriptFullName,WScript.ScriptName,"") WhereOut = DirName + "SizeSubDir.inf" Set FSO = CreateObject("Scripting.FileSystemObject") Set Folders = FSO.GetFolder(DirName).SubFolders Out = "" For Each Folder In Folders On Error Resume Next FolderSize = CStr(Round(Folder.Size / 1024 / 1024,2)) If Err.Number <> 0 Then FolderSize = "Не определено" FolderSize = Right(" " + FolderSize, 14) Out = Out + FolderSize + " " + Folder.Name + vbCrLf ' Если не надо имена, удалить +" "+Folder.Name Next Set F = FSO.OpenTextFile(WhereOut, 2, True) F.Write Out F.Close -Интересуют только размер каждой из подпапок заданного каталога, без вычислений объемов каждой из дочерних подпапок -нет необходимости выводить результат работы скрипта в текстовый файл -условие для удаления - "больше заданного размера" |
|
Отправлено: 18:24, 28-11-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Примерно так:
Option Explicit
Dim strFolder
Dim lngSize
Dim objFolder
strFolder = "E:\Песочница\0331"
lngSize = 50 * 2^10
With WScript.CreateObject("Scripting.FileSystemObject")
If .FolderExists(strFolder) Then
For Each objFolder In .GetFolder(strFolder).SubFolders
If objFolder.Size < lngSize Then
WScript.Echo "[" & objFolder.Path & "] deleting..."
'objFolder.Delete True
Else
WScript.Echo "[" & objFolder.Path & "]"
End If
Next
Else
WScript.Echo "Folder [" & strFolder & "] not found."
End If
End With
WScript.Quit 0
|
Отправлено: 18:50, 28-11-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 55
|
Профиль | Отправить PM | Цитировать Большое спасибо, только можно ли еще добавить игнорирование ошибок прав доступа, что бы скрипт считал след. объекты?
|
Отправлено: 21:09, 28-11-2013 | #3 |
Ветеран Сообщения: 20133
|
Профиль | Отправить PM | Цитировать Iska, к делу не относится, просто интересно стало. Почему 10^2, а не 1024?
|
------- Отправлено: 21:32, 28-11-2013 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата yurfed:
![]() Цитата DOCznet:
|
|||
Отправлено: 00:44, 29-11-2013 | #5 |
Пользователь Сообщения: 55
|
Профиль | Отправить PM | Цитировать Цитата Iska:
А какой в этом смысл — сравнение ведь тогда будет некорректно. Кстати, откуда там «ошибки прав доступа» возникают? » По задумке скрипт должен работать в C:\Users и доделывать дела кривой политики MS удаления неиспользуемых профилей старше N дней, которая после себя оставляет каждый раз разные папки в APPDATA у разных пользователей (большей их части), в которых либо файлов на пару килобайт, либо просто пустые каталоги. Соответственно если пользователю по разным стечениям обстоятельств доводится вновь работать на этой машине, то папка профиля создается вида USERNAME.DOMAINNAME, USERNAME.DOMAINNAME.001 etc. что сбивает некоторые привязки в рабочих программах и создает дополнительные трудозатраты. При том, что проблемы доступа возникают только с "живыми" профилями - игнорирование ошибок прав доступа еще и ускорит отработку. P.S. не думал, что даже из под учетной записи ПК, которая выполняет логон сценарии, будет нечто подобное |
Отправлено: 04:05, 02-12-2013 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Ясно. Не пробовали стороннее средство: Delprof2 - User Profile Deletion Tool • Helge Klein?
Тогда как-то так (не проверялось): |
Отправлено: 05:19, 02-12-2013 | #7 |
Пользователь Сообщения: 55
|
Профиль | Отправить PM | Цитировать То что доктор прописал.
Спасибо большое! |
Отправлено: 23:27, 02-12-2013 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочие - [решено] Удаление файлов заданного расширения | Папуас | Программное обеспечение Windows | 11 | 25-02-2019 15:04 | |
Интерфейс - Автоматическое назначение заданного шаблона отображения папок для группы папок | 19w85 | Microsoft Windows 7 | 8 | 08-08-2012 01:02 | |
VBS/WSH/JS - [решено] Удаление файлов меньше определенного размера | XXXp | Скриптовые языки администрирования Windows | 19 | 03-05-2012 15:12 | |
Прочие - Программа (скрипт) удаление из заданного каталога заданных файлов | __sa__nya | Программное обеспечение Windows | 1 | 20-11-2008 19:02 | |
Размера меньше пользы больше | d0c | Microsoft Windows 95/98/Me (архив) | 3 | 07-11-2002 19:14 |
|