Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


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

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


blackeangel, у Вас там в файле Unix'овские концы строк. И хотелось бы увидеть образцы Ваших файлов, из которых Вы будете делать замену (разумеется, так же — в архиве).

Вот примерная болванка на WSH на пробу:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strSourceFile
Dim strReplaceFile

Dim strContent
Dim strReplace


strSourceFile = "C:\Мои проекты\init\init.rc"
strReplaceFile = "C:\Мои проекты\init\Replace.rc"

With WScript.CreateObject("Scripting.FileSystemObject")
	If .FileExists(strSourceFile) Then
		If .FileExists(strReplaceFile) Then
			With .OpenTextFile(strSourceFile)
				strContent = .ReadAll()
				.Close
			End With
			
			With .OpenTextFile(strReplaceFile)
				strReplace = .ReadAll()
				.Close
			End With
			
			With WScript.CreateObject("VBScript.RegExp")
				.Global = True
				.MultiLine = True
				.IgnoreCase = True
				.Pattern = "^(    #Camera\n)([\s\S]+?)(\n    #/dev/RT_Monitor)$"
				
				If .Test(strContent) Then
					strContent = .Replace(strContent, "$1" & strReplace & "$3")
				Else
					WScript.Echo "Can't find pattern [" & .Pattern & "]."
					WScript.Quit 3
				End If
			End With
			
			With .CreateTextFile(strSourceFile + ".txt")
				.Write strContent
				.Close
			End With
		Else
			WScript.Echo "Can't find replace file [" & strReplaceFile & "]."
			WScript.Quit 2
		End If
	Else
		WScript.Echo "Can't find source file [" & strSourceFile & "]."
		WScript.Quit 1
	End If
End With

WScript.Quit 0

Сохраните приведённый код в файл с расширением .vbs, замените выделенное на пути к Вашим реальным исходному и заменяющему файлам. Результирующий файл получит имя исходного плюс «.txt». Посмотрите, что получается.

Цитата blackeangel:
Foreigner, sed это программа, так понимаю, для поиска и замены текста? »
Это портированная из Unix утилита, редактор потока (Stream EDitor — SED). Для Windows можно взять, например, отсюда.

Отправлено: 21:06, 07-11-2015 | #41