Для решения PURE BATCH мы можем использовать цикл for
вместе с оператором if
, чтобы найти первую строку, а затем в следующей строке вставить предопределенную фразу.
Ниже вы можете указать имя файла (или включить цикл для поиска по нескольким файлам), строку поиска и строку для добавления строки.Не добавляйте в строку, чтобы добавить строку, вы позаботитесь о любых специальных символах, таких как <
& >
, используя escape-символ ^
.Пример: ^<
.Сценарий Base Original: Magoo .
@ECHO OFF
@setlocal EnableDelayedExpansion
Rem | Configuration
Set "FileToEdit=O2-config.txt"
Set "LineToFind=<.add key="TuitionPaymentRunEnvironment" value="PRODUCTION"/>"
Set "LineToPutAfter=^<.add key="StudentAccountPaymentRunEnvironment" value="PRODUCTION"/^>"
Rem | Check If "FileToEdit" Exists
if not exist "%FileToEdit%" (
echo File "%FileToEdit%" Not Found!
pause
goto :EOF
)
goto StartFunction
:StartFunction
Rem | Export SearchString
echo !LineToFind!>> %~dp0LineToFind.txt
Rem | Add Text Under %LineToFind%
(
FOR /f "delims=" %%i IN (LineToFind.txt) DO (
SET AddAfter=%%i
FOR /f "delims=" %%n IN ('findstr /n "^" %FileToEdit%') DO (
SET line=%%n
SET line=!line:*:=!
ECHO(!line!
IF "!line!"=="!AddAfter!" ECHO(%LineToPutAfter%
)
)
)>>%FileToEdit%.TEMP
Rem | Remove LineToFind.txt
DEL LineToFind.txt
Rem | Delete Original File, Restore New
DEL %FileToEdit%
REN %FileToEdit%.TEMP %FileToEdit%
goto :EOF
Пример ввода:
<.add key="Test1" value="PRODUCTION"/>
<.add key="Test2" value="PRODUCTION"/>
<.add key="Test3" value="PRODUCTION"/>
<.add key="Test4" value="PRODUCTION"/>
<.add key="TuitionPaymentRunEnvironment" value="PRODUCTION"/>
<.add key="Test5" value="PRODUCTION"/>
<.add key="Test6" value="PRODUCTION"/>
Пример вывода:
<.add key="Test1" value="PRODUCTION"/>
<.add key="Test2" value="PRODUCTION"/>
<.add key="Test3" value="PRODUCTION"/>
<.add key="Test4" value="PRODUCTION"/>
<.add key="TuitionPaymentRunEnvironment" value="PRODUCTION"/>
<.add key="StudentAccountPaymentRunEnvironment" value="PRODUCTION"/>
<.add key="Test5" value="PRODUCTION"/>
<.add key="Test6" value="PRODUCTION"/>
Для получения справки по любой из команд выполните следующие действия:
call /?
set /?
for /?
if /?
find /?
- и т. Д.