如何在多个文件中查找想要的数据?
现使用 FOR 命令与 FINDSTR 命令结合的方式,以达到我们的目的。
演示步骤:
1. 在 D:/Temp 目录下有一堆文本文件,stru001.xml,stru002.xml,stru003.xml,……,stru200.xml。
2. 在 D:/Temp 目录下创建一文件列表文件 FileList.txt,它将包含前面的文件名,格式如下:
stru001.xml
stru002.xml
stru003.xml
……
stru200.xml
3. 我们要将查询出的结果分别导出到名称不相同的文件中去,
FOR /F "tokens=1*" %iIN (FileList.txt)DOFINDSTR /r /i "name=*" %i >> D:/Temp/Result_%i.txt
需要说明一下,FOR 会每次从 FileList.txt 中取出一个文件名称并保存在 %i 变量内,然后将 %i 作为传入变量给 FINDSTR 命令使用。这里涉及到的命令参数详细内容可参考Windows的联机帮助。
这一招在实际应用中挺管用,虽然UltraEdit文本编辑方面做得很不错了,但面对这样的问题,还是用脚本解决来的快啊。
下面是结合DB2 SQL脚本执行的例子,
for /f "tokens=1*" %i in (d:/temp/txcode.txt) do db2 select f_id, f_name from t_codes where f_catid = 'TX' and f_id = '%i' >> d:/temp/desc.dic