Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Вниз

Скрипт на 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.013 c
15-1151557954
DelphiN!
2006-06-29 09:12
2006.07.30
Получение номера с пластиковой карты через PC/2 CardReader


2-1152292746
fast2
2006-07-07 21:19
2006.07.30
Можна ли отсортировать StringGrid по какому-то полю?


2-1152169334
Delphi basic
2006-07-06 11:02
2006.07.30
select не из таблицы


1-1150458026
Вася123
2006-06-16 15:40
2006.07.30
Автоматическое увеличение высоты ячеек в StirngGrid е


1-1150649616
AlexAlex
2006-06-18 20:53
2006.07.30
Можно ли отрезать кусок от файла без копирования его содержимого?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский