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

时间:2019-01-29 06:15:18

标签: 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 
replace
direct

在for循环中,findstr函数正在唤醒,但未在findstr函数之后输出值。实际上,它将能够正确显示rule.txt中的所有数据!当我写 echo %% a 时?      但是它没有显示预期的结果?我不明白问题出在哪里,有人可以请我

预期结果:

select 
replace
direct

1 个答案:

答案 0 :(得分:0)

您需要在循环中运行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的查找结果不匹配?您是否打算将每行输出到文件?如果是这样,那么就可以了。

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