Тема: VBS:Обработка нескольких строк в файле в нижний регистр
В файлах есть несколько строк, содержащие "style="background-image:url(далее разные адреса", их все надо перевести в нижний регистр. Для обработки файлов с одной строкой я сделал скрипт
'рекрусивно проходим каталог
'ищет в файле строку с заданным словом word и перевод ее в нижний регистр
word = "style=""background-image:url(" 'искомое слово
papka = "C:\Мои документы\" 'папка поиска
otchet = "otchet.txt" 'файл отчета
i=0
Dim boolFound
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.IgnoreCase = True
Set file2 = objFSO.OpenTextFile(otchet, 2, True) '2 - Открыть файл для записи. Если файл уже существовал, его содержимое теряется. 8 - Открыть файл для добавления. Если файл уже существовал, информация будет дописываться в конец файла.Создавать файл, если он не существует (True), или нет (False).
RecursiveFolderScan papka
file2.close
Msgbox "ВСЕ! Обработано "& i &" файлов"
'InStr([start,] str1, str2[, compare]) - Возвращает индекс символа, с которого начинается первое вхождение подстроки str2 в строку str1.
'- start задаёт номер символа, с которого следует начинать поиск (если не задан, то с начала строки). Поиск производится слева направо.
'- compare задаёт режим сравнения при обработке строк (0 - двоичное сравнение, 1 - текстовое сравнение).
Sub RecursiveFolderScan(FolderPath)
'Получаем объектную модель текущего каталога
Set Folder = objFSO.GetFolder(FolderPath)
'Перебираем все файлы в текущем каталоге
For Each File in Folder.Files
'+++++++++++++++++++++++++++++++++++++++++
Set file1 = objFSO.OpenTextFile(File, 1, False)
boolFound = False
Do Until file1.AtEndOfStream
sw = file1.ReadLine()
If InStr(1, sw, word) <> 0 Then
boolFound = True
file2.WriteLine(file.Name)
file2.WriteLine(sw)
Exit Do
End If
Loop
file1.close
'записать уникальный номер в конец исходной страницы
If boolFound Then
Set file1 = objFSO.OpenTextFile(File, 1, False)
strText = file1.ReadAll
file1.close
strNewText = Replace(strText, sw, LCase(sw))
Set file1 = objFSO.OpenTextFile(File, 2, False)
file1.WriteLine strNewText
file1.close
End If
i=i+1 'счетчик файлов
'++++++++++++++++++++++++++++++++++++++
Next
'Перебираем все подкаталоги в каталоге
For Each SubFolder in Folder.SubFolders
RecursiveFolderScan(SubFolder.Path)
Next
End Subа вот чтобы обрабатывал все строки в файлах, содержащие данный кусок не получается.

