2013-05-17 2 views
2

Я хочу написать командный файл, который находит заданную строку в текстовом файле по строке, а затем заменяет всю эту строку другой заданной строкой.пакетный скрипт, найдите строку в текстовом файле по строке, затем замените целую строку на другую строку

пример: имеет файл text.txt string_replace = а string_replace_with = хуг , если каждая строка, которая содержит text.txt string_replace, так что линия будет заменена string_replace_with

Может ли один помочь мне? Спасибо большое

+0

1) где ваш код 2) в сети больше инструментов поиска и замены, чем звезды на небе. – Endoro

ответ

0

Получите себе порт Windows sed.

0

Если запустить этот SAR.BAT файл, как это он заменит а с А

SAR "fileinput.txt" "fileoutput.txt" "ABC" "А"

::Search and replace 
@echo off 
if "%~3"=="" (
echo.Search and replace 
echo Syntax: 
echo %0 "filein.txt" "fileout.ext" "regex" "replace_text" [first] 
echo. 
echo. if [first] is present only the first occurrence is changed 
goto :EOF 
) 
if "%~5"=="" (set global=true) else (set global=false) 
set s=regex.replace(wscript.stdin.readall,"%~4") 
>_.vbs echo set regex=new regexp 
>>_.vbs echo regex.global=%global% 
>>_.vbs echo regEx.IgnoreCase=True    
>>_.vbs echo regex.pattern="%~3" 
>>_.vbs echo wscript.stdOut.write %s% 
cscript /nologo _.vbs <"%~1" >"%~2" 
del _.vbs 
1
@echo off 
SET InFile=test.txt 
FOR /F "tokens=*" %%A IN ('FINDSTR "xyz" "%InFile%"') DO CALL :FindString "%%A" 
pause 
goto :eof 
:FindString 
SET String=%~1 
SET String=%String:xyz=abc% 
echo.%String%>getout.txt 

Попробуйте это, если оно решит вашу проблему. Из вашего вопроса я понял, что вы хотите найти и заменить слово желаемым словом.

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