Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Roman3D, ну, вот, как-то так, навскидку:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strSourceFile

Dim objFSO
Dim objRegExp

Dim strContent
Dim strText4Replace


strSourceFile = "E:\HTML\index.html"

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strSourceFile) Then
	With objFSO.OpenTextFile(strSourceFile)
		strContent = .ReadAll()
		.Close
	End With
	
	Set objRegExp = WScript.CreateObject("VBScript.RegExp")
	
	objRegExp.Pattern = "^(\s+procs\.src = '.+=)(\d+)(\(.+\);)$"
	objRegExp.MultiLine = True
	
	If objRegExp.Test(strContent) Then
		With objRegExp.Execute(strContent).Item(0).Submatches
			strText4Replace = Trim(InputBox( _
				"Found text: " & vbCrLf & vbCrLf & _
				.Item(0) & vbCrLf & _
				.Item(1) & vbCrLf & _
				.Item(2) & vbCrLf & vbCrLf & _
				"Input text for replace value of [" & .Item(1) & "]", _
				"Input text for replace value of [" & .Item(1) & "]", _
				.Item(1) _
			))
			
			If Len(strText4Replace) > 0 Then
				strContent = objRegExp.Replace(strContent, "$1" & Replace(strText4Replace, "$", "\$") & "$3")
				
				objFSO.CopyFile strSourceFile, objFSO.BuildPath(objFSO.GetParentFolderName(strSourceFile), objFSO.GetBaseName(strSourceFile) & ".bak"), True
				
				With objFSO.CreateTextFile(strSourceFile, True)
					.Write strContent
					.Close
				End With
			Else
				WScript.Echo "Replace cancelled"
				WScript.Quit 3
			End If
		End With
	Else
		WScript.Echo "Can't find pattern [" & objRegExp.Pattern & "] in content of source file [" & strSourceFile & "]."
		WScript.Quit 2
	End If
	
	Set objRegExp = Nothing
Else
	WScript.Echo "Can't find sourcefile [" & strSourceFile & "]."
	WScript.Quit 1
End If

Set objFSO = Nothing

WScript.Quit 0

P.S. Нажимать «Сохранить» не нужно .
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:02, 14-05-2018 | #20