标题: [文本处理] [己解决]BAT批处理如何将文件中含有指定字符串的文件名列出来? [打印本页]
作者: DDDYJQ1 时间: 2013-12-25 22:56 标题: [己解决]BAT批处理如何将文件中含有指定字符串的文件名列出来?
本帖最后由 DDDYJQ1 于 2013-12-27 10:55 编辑
如何将同一文件夹下所有文件TXT文件中含有“曾孝琼,陈家江,关山月”的文件名列出来?
只要含有这有三个名字之一的就列出来,先谢了
要求结果姓名对应文件名,象以下这种格式
曾孝琼 飞羽天下.TXT
陈家江 月之暗面.TXT
陈家江 月之金面.TXT
关山月 昆仑传说.TXT
作者: apang 时间: 2013-12-26 15:33
这样可以不?- @echo off
- for %%a in (曾孝琼 陈家江 关山月) do (
- for /f "delims=" %%b in ('findstr /im "%%a" *.txt') do echo,%%a %%b
- )
- pause
复制代码
作者: DAIC 时间: 2013-12-26 15:51
如果一个文件同时包含曾孝琼和陈家江,楼主希望如何显示?
作者: DDDYJQ1 时间: 2013-12-26 19:46
如果一个文件同时包含曾孝琼和陈家江,就象以下这样显示
曾孝琼 陈家江 太能光稀世.TXT
曾孝琼 飞羽天下.TXT
陈家江 月之暗面.TXT
陈家江 月之金面.TXT
关山月 昆仑传说.TXT
并将结果保存在KK.TXT
先谢了
作者: apang 时间: 2013-12-26 23:45
本帖最后由 apang 于 2013-12-27 00:07 编辑
- @set @n=1 //&dir /b *.txt|cscript -nologo -e:jscript "%~0" &pause&exit /b
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var ar = new Array("曾孝琼","陈家江","关山月");
- while (!WScript.StdIn.AtEndOfstream) {
- var f = WScript.StdIn.ReadLine();
- var txt = fso.OpentextFile(f).ReadAll();
- var s = "";
- for (i=0; i<=ar.length; i++) {
- if (txt.indexOf(ar[i])>-1) { s += ar[i] + " " };
- };
- if (s != "") { WScript.Echo(s + f) };
- };
复制代码
作者: DDDYJQ1 时间: 2013-12-27 00:32
对,谢谢各位,楼上的很好用,如何将结果保存在KK.TXT
谢谢了
作者: DAIC 时间: 2013-12-27 08:48
回复 5# apang
如果有一个txt文件内容为空,代码会出错。
作者: DDDYJQ1 时间: 2013-12-27 09:15
KK.TXT放在其他文件夹也可以,比如桌面,谢谢了
作者: apang 时间: 2013-12-27 10:14
本帖最后由 apang 于 2013-12-27 10:15 编辑
回复 7# DAIC - @set @n=1 //&dir /b *.txt|cscript -nologo -e:jscript "%~0">KK.log &pause&exit /b
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var ar = new Array("曾孝琼","陈家江","关山月");
- while (!WScript.StdIn.AtEndOfstream) {
- var f = WScript.StdIn.ReadLine();
- if (fso.GetFile(f).Size >0) {
- var txt = fso.OpenTextFile(f).ReadAll();
- var s = "";
- for (i in ar) {
- if (txt.indexOf(ar[i]) >-1) {s += ar[i] + " "};
- };
- if (s != "") WScript.StdOut.WriteLine(s+f);
- };
- }
复制代码
作者: DDDYJQ1 时间: 2013-12-27 10:55
谢谢了,就是这样子,很好用
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |