Пакетный скрипт, как вырезать часть строки в файле от нужного слова и далее - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть 2 строки в файле (input.txt), как показано ниже,

D:\myfolder\main.c:1:INT ABCD 1234 abc();
D:\myfolder\main.c:3:CHAR EFGH 5678 xyz();

Ожидаемый вывод в файл (D: \ F1 \ output.txt) должен быть

INT ABCD 1234 abc();
CHAR EFGH 5678 xyz();

Примечание: необходимо скопировать часть строки, начинающуюся с VARIABLE (int или char или любых других переменных), ДО КОНЦА THR LINE до; (точка с запятой) в выходной файл

1 Ответ

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

Если ОП не прилагает усилий для решения или лучшего объяснения проблемы, то с моей стороны не предпринимается никаких усилий для объяснения кода ...

@echo off
setlocal EnableDelayedExpansion

(for /F "delims=" %%a in (input.txt) do (
   set "in=%%a"
   set "out="
   for %%v in (INT CHAR) do if not defined out call :GetVar "!in:%%v=" "%%v!"
   echo !out!
)) > D:\F1\output.txt
goto :EOF

:GetVar
set "out=%~2"
exit /B

РЕДАКТИРОВАТЬ : Еще один более простой метод:

@echo off
setlocal EnableDelayedExpansion

(for /F "delims=" %%a in (input.txt) do (
   set "in=%%a"
   for %%v in (INT CHAR) do if "!in:*%%v=%%v!" neq "!in!" set "out=!in:*%%v=%%v!"
   echo !out!
)) > D:\F1\output.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...