Текущий архив: 2006.07.30;
Скачать: CL | DM;
Вниз
Скрипт на VBS, читающий название файлов в дирректории... Найти похожие ветки
← →
Layner © (2006-07-03 13:37) [0]Здравствуйте! Понадобилось сделать такй скрипт:
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("D:\bd")
Set fc = f.SubFolders
For Each f1 in fc
s = s & f1.name
s = s & CHR(10)
Next
s = s & "Всего папок: " & fc.Count
WScript.Echo s
В данном случае, считаются папки, и выводится сообщение скалько их.
Потребовалось сделать почти тоже самое, только показать название файлов в дирректории, плюс эти все названия записать в текстовый файл. Подскажите, как такой изобразить на VBS? :) Очень надо эту задачу сделать скриптом. Заранее благодарю.
← →
vbs (2006-07-03 13:46) [1]Как-нибудь так:
Sub DirList(strDirName, str_arrExtensions, objStream)
Dim objFld, objSubFld, objFle
Dim strFileExt, i
Set objFld = objFSO.GetFolder(strDirName)
For Each objFle In objFld.Files
strFileExt = Right(objFle.Name, Len(objFle.Name) - InStrRev(objFle.Name, "."))
For i = 0 To UBound(str_arrExtensions)
If StrComp(strFileExt, Trim(str_arrExtensions(i)), vbTextCompare) = 0 Then
objStream.WriteLine(objFle.Path)
Exit For
End If
Next
Next
For Each objSubFld In objFld.SubFolders
DirList objSubFld.Path, str_arrExtensions, objStream
Next
Set objFld = Nothing
End Sub
← →
Layner © (2006-07-03 14:03) [2]vbs (03.07.06 13:46), спасибо за ответ, попробовал, что то никак не получается выдать в файл результать :( Даже не знаю, сканирует ли дирректорию...
Sub DirList(str_arrExtensions, objStream)
Dim objFld, objSubFld, objFle
Dim strFileExt, i
Set objFld = objFSO.GetFolder("C:\")
For Each objFle In objFld.Files
strFileExt = Right(objFle.Name, Len(objFle.Name) - InStrRev(objFle.Name, "."))
For i = 0 To UBound(str_arrExtensions)
If StrComp(strFileExt, Trim(str_arrExtensions(i)), vbTextCompare) = 0 Then
objStream.WriteLine(objFle.Path)
Exit For
End If
Next
Next
For Each objSubFld In objFld.SubFolders
DirList objSubFld.Path, str_arrExtensions, objStream
WScript.Echo "hhh"
Next
Set objFld = Nothing
End Sub
← →
vbs (2006-07-03 14:12) [3]ну рекурсивный обход диска с может много времени занять
Для того, чтобы пройтись по одной директории нужно убрать это:For Each objSubFld In objFld.SubFolders
DirList objSubFld.Path, str_arrExtensions, objStream
WScript.Echo "hhh"
Next
если отсев файлов по расширениям не нужен, то это тоже можно убрать:strFileExt = Right(objFle.Name, Len(objFle.Name) - InStrRev(objFle.Name, "."))
For i = 0 To UBound(str_arrExtensions)
If StrComp(strFileExt, Trim(str_arrExtensions(i)), vbTextCompare) = 0 Then
← →
Layner © (2006-07-03 14:59) [4]Да, сложно что то с этими скриптами, пока оставил, дома с помощью книги попытаюсь разобраться. Спасибо! :)
Страницы: 1 вся ветка
Текущий архив: 2006.07.30;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.011 c