2015-08-20 4 views
0

У нас есть папка, внутри которой есть 1000 блокнотов с данными. Мы пытаемся найти и заменить определенные пользователем строки во всех этих блокнотах, не открывая их отдельно. Можете ли вы мне помочь с функциями скрипта vb, которые спрашивают у пользователя, какую строку он хочет заменить, а что заменить, а затем заменить во всех блокнотах одновременно.Найти и заменить текст внутри нескольких блокнотов, хранящихся в папке

+0

Вы знаете, как перебирать файлы в VBScript? Вы знаете, как открыть и прочитать существующий текстовый файл? Какой сценарий вам удалось собрать самостоятельно? – Bond

ответ

1

Попробуйте это:

Option Explicit 

Const TristateFalse = 0 ' ASCII 
Const TristateTrue = -1 ' Unicode 
Const TristateUseDefault = -2 ' System Default 

Dim sFindExpr, sReplaceWith, sFolder, oFile, sContent 

sFolder = "C:\Test\files" 
sFindExpr = InputBox("Enter expression to be replaced") 
sReplaceWith = InputBox("Enter expression to replace with") 

With CreateObject("Scripting.FileSystemObject") 
    For Each oFile In .GetFolder(sFolder).Files 
     With .OpenTextFile(oFile.Path, 1, False, TristateUseDefault) 
      sContent = "" 
      If Not .AtEndOfStream Then sContent = .ReadAll 
      .Close 
     End With 
     sContent = Replace(sContent, sFindExpr, sReplaceWith) 
     With .OpenTextFile(oFile.Path, 2, False, TristateUseDefault) 
      .Write(sContent) 
      .Close 
     End With 
    Next 
End With 

CreateObject("WScript.Shell").PopUp "Completed", 1, , 64 
Смежные вопросы