CMD/BAT - [решено] замена текста (несколько строк)

Ответить
Аватара пользователя
Alexander_88

CMD/BAT - [решено] замена текста (несколько строк)

Сообщение Alexander_88 »

Здравствуйте, имеется код:





Код:

Код: Выделить всё

@echo off
set "word_or_frase=Download"
set "replacement=Download1"
for %%i in (
"C:\Users\Alexander\OneDrive\work\new\old.txt"
 ) do (
 echo WScript.Echo^(Replace^(WScript.CreateObject^("Scripting.FileSystemObject"^).OpenTextFile^(%%i^).ReadAll^(^),"%word_or_frase%","%replacement%"^)^)>.vbs
 cscript //nologo .vbs| clip
 mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(ClipboardData.GetData("text"))&Close()"| more>%%i
 )
del .vbs

Он делает замену текста в txt файле с

Код:

Код: Выделить всё

Download

на

Код:

Код: Выделить всё

Download1

Как сделать, чтобы слово

Код:

Код: Выделить всё

Download

изменилось на:



Код:

Код: Выделить всё

$s
Download

?

т.е. выше каждого встречного слова "Download" в txt документе, нужно добавить строку с содержимым

Код:
Аватара пользователя
Busla

Re: CMD/BAT - [решено] замена текста (несколько строк)

Сообщение Busla »

Какой лютый трэш и угар Изображение



Перейти с vbscript на jscript, и тогда использовать литералы перевода строки \r\n прямо в переменной замены.
Аватара пользователя
Alexander_88

Re: CMD/BAT - [решено] замена текста (несколько строк)

Сообщение Alexander_88 »

Цитата alpap:



sed-4.5.exe -i "s/Download/

Код: Выделить всё

$s\nDownload/g" "file.txt" »
		
	
	



 
 Код: 
 "sed-4.5.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Аватара пользователя
YuS_2

Re: CMD/BAT - [решено] замена текста (несколько строк)

Сообщение YuS_2 »

Цитата Alexander_88:



т.е. выше каждого встречного слова "Download" в txt документе, нужно добавить строку с содержимым
CMD/BAT - [решено] замена текста (несколько строк)




Если буквально, т.е. без учета, что там уже может находиться такая строка и местоположение в строке слова "Download", не имеет значения:

powershell



Код:

Код: Выделить всё

(gc test.txt -enc utf8) -replace "(\bDownload\b)","`$s`n`$1"|sc test.txt -enc utf8
Ответить

Вернуться в «Скриптовые языки администрирования Windows»