2014-07-03 3 views
1

Утра, я быть_наст INI-файл, который я изменить с этим VBScript:VBScript заменить текст - не во всех документе

Dim FileName, Find, ReplaceWith, FileContents, dFileContents 
Find   = WScript.Arguments(0) 
ReplaceWith = WScript.Arguments(2) 
FileName  = WScript.Arguments(1) 

FileContents = GetFile(FileName) 
dFileContents = replace(FileContents, Find, ReplaceWith, 1, -1, 1) 
WriteFile FileName, dFileContents 

function GetFile(FileName) 
    If FileName<>"" Then 
    Dim FS, FileStream 
    Set FS = CreateObject("Scripting.FileSystemObject") 
     on error resume Next 
     Set FileStream = FS.OpenTextFile(FileName) 
     GetFile = FileStream.ReadAll 
    End If 
End Function 

function WriteFile(FileName, Contents) 
    Dim OutStream, FS 
    on error resume Next 
    Set FS = CreateObject("Scripting.FileSystemObject") 
    Set OutStream = FS.OpenTextFile(FileName, 2, True) 
    OutStream.Write Contents 
End Function 

теперь я называю CSCRIPT replace.vbs «что я хочу, чтобы искать» «имя file "", что я хочу заменить "

Эта работа, но этот скрипт заменит все слово в« что я хочу искать ». В моем «имени файла» есть еще одна запись с тем же именем, и я хочу, чтобы sobstitute был только первым. Waht я могу сделать? спасибо

ответ

1

Процитировать Ansgar: В случае сомнений прочитайте Docs. Обратите внимание на параметр count. Это решит вашу конкретную проблему - заменив только первое вхождение.

Лучший, более общий подход: используйте RegExp, который идентифицирует значение для изменения, указав его ключ.

+0

Я сожалею о своей глупой почте ... я благодарю вас за ответ. я меняю значение -1 на 1, и теперь он работает ... Большое спасибо и оцениваю меня по моему вопросу – user3801383

Смежные вопросы