Найти строку, содержащую возврат каретки в файле - пакет Windows - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь определить строку с двумя символами возврата каретки в файле, используя пакет Windows.

Я знаю файл, и мне нужно знать, есть ли в нем строка, которую я ищу, или нет.

Вот строка:

[Terminal]
Fenetre=O
Debug=O

А вот код, который я пытался использовать, но он не работает ...

@echo off
findstr /M "[Terminal]\\r\\nFenetre=O\\r\\nDebug=O" C:\ETMI\ECSPyx\pyxvital\Pyxvital.ini
if %errorlevel%==0 (
    echo Found! logged files into results.txt
) else (
    echo No matches found 
)

ФиналРезультат, который мне нужен, это просто знать, содержит ли файл эту «строку», если нет, я напишу ее в файл.Иначе, я поставлю точку с запятой перед «Фенетром»

Но сначала, как мне это найти?

Спасибо!

1 Ответ

0 голосов
/ 28 января 2019

Я думаю, вам может пригодиться запись от dbenham .Это может заставить вас запустить что-то похожее на это:

@echo off
setlocal
::Define LF variable containing a linefeed (0x0A)
set LF=^


::NOTE! the above 2 blank lines are critical - do not remove

::Define CR variable containing a carriage return (0x0D)
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"

setlocal enableDelayedExpansion
::regex "!CR!*!LF!" will match both Unix and Windows style End-Of-Line
findstr /n /r /c:"\[Terminal\]!CR!*!LF!Fenetre=O!CR!*!LF!Debug=O" C:\ETMI\ECSPyx\pyxvital\Pyxvital.ini>nul && echo Found || echo Not found
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...