Batch file 条件For循环在批处理文件中不起作用

Batch file 条件For循环在批处理文件中不起作用,batch-file,Batch File,条件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

条件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中的所有数据!当我写回显%%a时? 但它没有显示预期的结果?我不明白问题出在哪里有人能帮我吗

预期结果:

select 
replace
direct

您需要作为循环的一部分运行
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
)
但是,您的预期结果与
select
的findstr不匹配。您是否打算将每一行输出到文件中?如果是这样,那么这就可以了

@echo off
for %%a in (somefile.txt) do (
  mysql  --user u --password p --database d -e  "%%a">>Query.txt
  echo %%a
)

因为您没有将findstr输出指定为tokens/variables.sry,您可以详细解释一下吗