Как найти строку и затем разделить токен при чтении файла построчно, используя пакетный скрипт - PullRequest
0 голосов
/ 12 декабря 2018
I have tried to do like this 

Inputfile содержит файл, который должен быть прочитан

for /F "tokens=* delims=" %%A in (%INPUTFILE%) do (
    SET my_line=%%A
    SET my_line=%my_line:#define ACCEL_PRESENT%
    findstr /C:"define ACCEL_PRESENT" 
    if %errorlevel%==0 ( SET my_line=%%A
    call :parse_it
    )

)

:parse_it
for /F "usebackq tokens=1-6 delims= " %%1 in ('%my_line%') do (
    echo %%3 > t.txt
)

Я ничего не получаю из приведенного выше кода. Может кто-нибудь помочь мне с желаемыми результатами

1 Ответ

0 голосов
/ 12 декабря 2018

Вот одно из возможных решений:

@echo off

setlocal EnableDelayedExpansion

for /f "tokens=* delims=" %%A in (%INPUTFILE%) do (
    set "my_line=%%A"
    set "my_line=!my_line:#define ACCEL_PRESENT=!"
    echo !my_line! | findstr /C:"define ACCEL_PRESENT"
    IF !errorlevel! EQU 0 ( SET "my_line=%%A" && call:parse_it )
)

:parse_it
for /F "usebackq tokens=1-6 delims= " %%A in ("%my_line%") do echo %%C > t.txt

rem exit /b

Я надеюсь, что вы хотите удалить строку #define ACCEL_PRESENT.

Также, скажите мне, если %my_line% - это команда (я неЯ так не думал, поэтому я удалил одинарные кавычки и добавил двойные кавычки).

Лучше использовать буквенные переменные в for циклах!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...