Цикл условного For не работает в командном файле - PullRequest
0 голосов
/ 29 января 2019

Условный цикл For не работает в пакетном файле

Когда я записываю условие в цикл for, условие работает, но после условия я хочу напечатать значения в цикле for, но он не отображал значенияи вот ниже мой скрипт

for /f "delims= " %%a in (rule.txt) do (
 findstr select rule.txt(
 mysql  --user u --password p --database d -e  "%%a">>Query.txt
 )
 echo %%a
 )

данные в rule.txt

select 
replace
direct

В цикле for функция findstr работает, но не печатаетзначения после функции findstr.На самом деле, он сможет отображать все данные, которые были в правиле rule.txt!когда я пишу echo %% a ?но это не отображает ожидаемый результат?я не понял, где проблема возникает, может кто-нибудь PLZ помочь мне

Ожидаемый результат:

select 
replace
direct

1 Ответ

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

Вам необходимо запустить findstr как часть цикла, чтобы вы могли присвоить результат токену, в этом случае %%a:

@echo off
for /f %%a in ('type somefile.txt ^|findstr "select"') do echo %%a

Я не имею смыслапочему вы хотите найти точное слово, затем просто добавьте его в вывод, как вы могли бы просто добавить слово в строку, но тем не менее.Я думаю, это то, что вы намеревались:

@echo off
for /f %%a in ('type somefile.txt ^|findstr "select"') do (
  mysql  --user u --password p --database d -e  "%%a">>Query.txt
  echo %%a
)

Ваш ожидаемый результат, однако, не совпадает с вашим findstr из select Возможно, вы хотели вывести каждую из строк в файл?если это так, то это будет сделано.: * 10101

@echo off
for %%a in (somefile.txt) do (
  mysql  --user u --password p --database d -e  "%%a">>Query.txt
  echo %%a
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...