Пакет: определить, существует ли подстрока в строке, прочитанной из файла - PullRequest
1 голос
/ 10 сентября 2011

Я новичок в партии.Мое намерение - написать пакет, который читает каждую строку из файла, и зависит от строки, прочитанной для выполнения различных задач.Вот пример

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%a in (test.txt) do ( 
  echo %%a
  *if %%a contains abc do (other tasks)*           
)

Кроме того, я могу обнаружить "новую строку" в пакете ??если test.txt выглядит следующим образом:

123
345
abckdla

abd
abd
abc

test

могу ли я напечатать "это новая строка", когда цикл for находится в row4 и row8 в test.txt ??к вашему времени.

1 Ответ

6 голосов
/ 10 сентября 2011

В вашем сообщении есть два вопроса

1.- Проверка наличия в подстроке переменной.

попробуйте это

@echo off
setlocal enableextensions enabledelayedexpansion
for /f "tokens=*" %%a in (test.txt) do ( 
  set tst=%%a
  set tst=!tst:ab=!
  if not !tst!==%%a ( 
    echo %%a contains ab
  ) else (
    echo %%a does not contain ab
  )
)

см. HELP SETподробная информация.

2.- команда FOR пропускает пустые строки.Попробуйте HELP FOR и прочитайте «Пустые строки пропущены».Существуют запутанные решения, включающие, например, TYPE и FIND, которых я бы старался избегать, если в этом нет особой необходимости.

...