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

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

Ветеран


Contributor


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

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


Мне кажется то, что предложено El Sanchez несколько эклектично, хотя по своему очень интересно, логичнее всё сделать в VBS, да и если к какой-либо папке нет доступа (например, чаще всего "System Volume Information" или к какой-то сетевой) приведенное решение не отработает.
Вот решение полностью на VBS
Код: Выделить весь код
DirName = "c:\TraLaLa\"

'                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
Можно указать, в какой папке вам интересен размер подпапок, если интересен размер подпапок там, откуда запущен скрипт, надо указать
DirName = ""
(в приведенном скрипте эта строка закомментирована и не выполняется)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 22-05-2010 в 01:02.

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

Отправлено: 23:56, 21-05-2010 | #4