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