Как заставить findstr распечатывать текст только после найденной строки? - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть пакетный файл, который находит «@todo:» в моих файлах .h cpp и .h, который выглядит следующим образом:

@echo off

findstr /n /i /c:"@todo:" *.cpp
findstr /n /i /c:"@todo:" *.h

Когда я запускаю его, он выдает такой результат :

console.cpp:23: char message[2048]; //@todo: make this better

Но я хочу, чтобы он распечатывал только часть @todo: make this better, а не текст слева от нее. Как я могу добиться этого в командном файле?

1 Ответ

0 голосов
/ 09 апреля 2020

findstr возвращает всегда , возвращает всю строку, поэтому вам нужен другой метод для разбиения строки. Подстановка подстроки с set является хорошим кандидатом здесь:

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (type *.cpp *.h ^|find /i "@todo:") do (
  set "line=%%a"
  echo/!line:*@todo=@todo!"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...