Поиск и замена текста в файлах

Материал из TCKB 2.0

Перейти к: навигация, поиск

Скрипт, заменяющий все вхождения заданной строки во всех выделенных файлах на другую строку. Архиполезнейшая вещь!


'  File:         ReplaceInFiles.vbs
'  Description:  Производит поиск текста с заменой
'                в выделенных текстовых файлах
'  Installation: Создайте кнопку на панели TC
'                Команда: "диск:\путь\к\файлу\ReplaceInFiles.vbs"
'                Параметры: "%L" (именно в кавычках!)
'  Copyright:    (c) 2006, Volniy

Option Explicit
 
Dim FSO, Find_String, Replace_String, F, Buffer, ListFile
Const ForReading = 1, ForWriting = 2
 
Set FSO = CreateObject("Scripting.FileSystemObject")
 
Find_String = InputBox("Введите искомую строку", "Поиск и замена")
If Len(Find_String) = 0 Then
   MsgBox "Не задана строка поиска!", vbExclamation, "Поиск и замена"
   WScript.Quit()
End If
 
Replace_String = InputBox("Введите строку для замены", "Поиск и замена")
 
Set ListFile = FSO.OpenTextFile(WScript.Arguments(0), 1)
Do While Not ListFile.AtEndOfStream
   Call DoItForThisFile(ListFile.ReadLine)
Loop
ListFile.Close
Set ListFile = Nothing
Set F = Nothing
Set FSO = Nothing
 
MsgBox "Замена завершена!", vbInformation, "Поиск и замена"
WScript.Quit
 
Sub DoItForThisFile(FilePath)
   Set F = FSO.OpenTextFile(FilePath, ForReading)
   Buffer = F.ReadAll
   F.Close
 
   Buffer = Replace(CStr(Buffer), Find_String, Replace_String, 1, -1, 1)
   FSO.CopyFile FilePath, FilePath & ".bak"
 
   Set F = FSO.OpenTextFile(FilePath, ForWriting)
   F.Write Buffer
   F.Close
End Sub

Volniy

Личные инструменты
Реклама