Привожу листинг файла ListFoldFiles.vbs
Он очень большой, но думаю должен поместиться в сообщении
'*******************************************************************
' File: ListSubFolder.vbs (VBScript)
' Author: LEND
' Листинг всех вложенных директорий(подкатлогов) указанной
' директории(каталога), их файлов и вывод в NOTEPAD
'*******************************************************************
Option Explicit
'Объявляем переменные
'Const Title = "Lend"
Dim oIE
Dim path
Dim ready
Dim WshShell
Dim strPathHtml
Dim objDocument
Dim BisQuit
Dim flag1,flag2,flag3
Dim FSO
Dim F
Dim SFold
Dim SubFolders
Dim Folder
Dim s
Dim K
Dim t
Dim m
Dim wsh
Dim KolFiles
Dim VsegoKatalogov
Dim VsegoFiles
Dim VsegoSize
Dim VsegoFilesKat
Dim oFolder
Dim oFile
Dim oFiles
Dim VsegoSizeMb
Dim VsegoFilesSize
Dim fOut
Dim theNotepad
Const ForWriting = 2
'++++++++++++++++++++++++ Процедуры ++++++++++++++++++++++
'================== Процедура Показа Explorer формы =========
Sub PokazForm
Set objDocument=oIE.Document
objDocument.all.KnopOk.Disabled=False
objDocument.all.KnopVix.Disabled=False
Set objDocument.all.KnopOk.onClick=GetRef("Okda")
Set objDocument.all.KnopVix.onClick=GetRef("Vixda")
End Sub
'================== Процедура вывода данных формы =================
Sub Okda
Sfold=oIE.Document.ValidForm.fDirKat.Value
flag1=oIE.Document.ValidForm.fcheck1.Checked
flag2=oIE.Document.ValidForm.fcheck2.Checked
flag3=oIE.Document.ValidForm.fcheck3.Checked
'Проверка каталога
if FSO.FolderExists(Sfold)=False then
if Sfold="" then
msgBox "Вы ничего не ввели"
else
msgBox "Директория(каталог)" & VbCrLf &_
Sfold & chr(13) & "Не существует"
end if
else
Raschet 'Процедура расчета
end if
End Sub
'===================== Расчет ========================================
Sub Raschet
'Создаем объект FileSystemObject
s = "Каталог " & SFold & VbCrLf
s = s & "Подкаталоги:" & VbCrLf
'Создаем объект Folder для любого каталога
Set F=FSO.GetFolder(SFold)
'Создаем коллекцию подкаталогов любого каталога
Set SubFolders = F.SubFolders
m="Просмотр каталога " & SFold & " и его подкаталогов и файлов" & VbCrLf
VsegoFiles=0
VsegoFilesKat=0
VsegoSize=0
ShowFil (SFold)
m=m & vbCrLf
m=m & "========= Подкаталоги и файлы =========" & vbCrLf
'Цикл по всем каталогам и подкаталогам
VsegoKatalogov=0
VsegoKatalogov=VsegoKatalogov+SubFolders.Count
For Each Folder In SubFolders
'Добавляем строку с именем подкаталога
m = m & Folder & VbCrLf
s = Folder
ShowFil (s) 'Процедура показа файлов
m=m & vbCrLf
Kat (s) 'Процедура показа каталогов
Next
m=m & VbCrLf
m=m & "Всего вложенных каталогов в каталоге " & SFold & VbCrLf
m=m & VsegoKatalogov & VbCrLf
m=m & "Всего вложенных файлов в каталоге " & SFold & VbCrLf
m=m & VsegoFiles & VbCrLf
if flag3=true then 'Всего размер указанного каталога
m=m & "Общий размер вложенных файлов в БАЙТАХ в каталоге " & SFold & VbCrLf
m=m & VsegoSize & VbCrLf
m=m & "Общий размер вложенных файлов в Mb в каталоге " & SFold & VbCrLf
VsegoSizeMb = VsegoSize/1048576
m=m & VsegoSizeMb & VbCrLf
end if
' Выводим файлы директории с помощью TextOut
' Файл запишется в корневую директорию C:\Temp\ListKatFiles.txt - Выбери сам куда
TextOut m,"C:\Temp\ListKatFiles.txt"
'Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
'Открываем созданный файл в Блокноте и выводим полученные данные на экран
Set theNotepad = WshShell.Exec("notepad " & "C:\Temp\ListKatFiles.txt" )
End Sub
'================== Выход из формы ===================================
Sub Vixda
oIE.Quit
End Sub
'============ Функция просмотра всех подкаталогов ============
Sub Kat (s)
Set K=FSO.GetFolder(s)
'Создаем коллекцию подкаталогов
Set SubFolders = K.SubFolders
'Цикл по всем подкаталогам
VsegoKatalogov=VsegoKatalogov+SubFolders.Count
For Each Folder In SubFolders
'Добавляем строку с именем подкаталога
m = m & Folder & VbCrLf
t=Folder
ShowFil (t)
m=m & vbCrLf
Kat(t)
Next
End Sub
'=============== Функция для записи информации в файл ==========
Sub TextOut (m, File)
' Открываем выходной файл для записи
Set FOut = FSO.OpenTextFile(File,ForWriting,true)
' Записываем текстовую строку в файл
FOut.WriteLine m
' Закрываем выходной файл
FOut.Close
End Sub
'================ Функция показа файлов =======================
Sub ShowFil (t)
Set wsh = WScript.CreateObject("WScript.Shell")
Set oFolder = fso.GetFolder(wsh.ExpandEnvironmentStrings(t))
'm=m & vbCrLf
'm=m & "Файлы каталога" & vbCrLf
'm = m & "Name" & vbTab & vbTab & "Size" & vbCrLf
Set oFiles = oFolder.Files ' Вывод файлов.
kolFiles=oFiles.count 'Кол. файлов в директории
VsegoFiles=VsegoFiles+KolFiles
m=m & "Всего файлов: " & kolFiles & vbCrLf
VsegoFilesSize=0
For Each oFile In oFiles ' Все файлы
m = m & oFile.Name & vbTab
if flag1=true then
m = m & FormatNumber(oFile.Size, 0) & vbTab
end if
m = m & vbCrLf
VsegoSize=VsegoSize+FormatNumber(oFile.Size, 0)
VsegoFilesSize=VsegoFilesSize+FormatNumber(oFile.Size, 0)
Next
if flag2=true then ' Показ размера каталога
m=m & "Всего в этом каталоге " & VsegoFilesSize & " Bt. или " &_
FormatNumber((VsegoFilesSize/1048576),6) & " Mb." & vbCrLf
end if
'm=m & "Всего файлов: " & kolFiles & vbCrLf
End Sub
'==============================================================
'+++++++++++++++++++++ Конец процедур +++++++++++++++++++++++++
'***************** Основное тело программы ************
Set WshShell=WScript.CreateObject("WScript.Shell")
Set oIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
oIE.Left = 10
oIE.Top = 10
oIE.Height = 320
oIE.Width = 530
oIE.MenuBar = 0
oIE.ToolBar = 0
oIE.StatusBar = 0
oIE.Resizable = 0
strPathHtml=WshShell.CurrentDirectory & "\" & "Forma.htm"
oIE.navigate strPathHtml 'Вызов формы
oIE.Visible = 1 ' Показать Form'у
Do While (oIE.Busy)
WScript.Sleep 200 ' Задерка 200 milliseconds - вывода Form'ы
Loop
PokazForm ' Основная Процедура
BisQuit=false
While not BisQuit
WScript.Sleep 200 ' Задержка 200 milliseconds.
Wend
'WScript.Quit
'******************* Конец программы *****************
Эти два файла ВЫ можете перенести в любую директорию(каталог). Они должны быть вместе.
И тогда Вы можете поэксперементировать. Вы также можете их запускать в большом количество экземпляров, но только непереполните память.
Вообщем Я их выложил в 1-ом сообщении. Они оба будут с расширением txt
Потом замените:
Forma.txt на Forma.htm
ListSubFolder.txt на ListSubFolder.vbs
И еще можно модернизировать программу.
Если ВЫ разбираетесь - пробуйте.
Можно также эти 2 файла записать в 1 файл с расширением XML , но это надо пробовать.
Успеха
LEND