[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [己解决]BAT批处理如何将文件中含有指定字符串的文件名列出来?

本帖最后由 DDDYJQ1 于 2013-12-27 10:55 编辑

如何将同一文件夹下所有文件TXT文件中含有“曾孝琼,陈家江,关山月”的文件名列出来?
只要含有这有三个名字之一的就列出来,先谢了
要求结果姓名对应文件名,象以下这种格式
曾孝琼  飞羽天下.TXT
陈家江 月之暗面.TXT
陈家江 月之金面.TXT
关山月 昆仑传说.TXT

这样可以不?
  1. @echo off
  2. for %%a in (曾孝琼 陈家江 关山月) do (
  3.     for /f "delims=" %%b in ('findstr /im "%%a" *.txt') do echo,%%a %%b
  4. )
  5. pause
复制代码

TOP

如果一个文件同时包含曾孝琼陈家江,楼主希望如何显示?

TOP

如果一个文件同时包含曾孝琼和陈家江,就象以下这样显示
曾孝琼 陈家江 太能光稀世.TXT
曾孝琼  飞羽天下.TXT
陈家江 月之暗面.TXT
陈家江 月之金面.TXT
关山月 昆仑传说.TXT
并将结果保存在KK.TXT
先谢了

TOP

本帖最后由 apang 于 2013-12-27 00:07 编辑
  1. @set @n=1 //&dir /b *.txt|cscript -nologo -e:jscript "%~0" &pause&exit /b
  2. var fso = new ActiveXObject("Scripting.FileSystemObject");
  3. var ar = new Array("曾孝琼","陈家江","关山月");
  4. while (!WScript.StdIn.AtEndOfstream) {
  5.     var f = WScript.StdIn.ReadLine();
  6.     var txt = fso.OpentextFile(f).ReadAll();
  7.     var s = "";
  8.     for (i=0; i<=ar.length; i++) {
  9.         if (txt.indexOf(ar[i])>-1) { s += ar[i] + " " };
  10.     };
  11.     if (s != "") { WScript.Echo(s + f) };
  12. };
复制代码
1

评分人数

TOP

对,谢谢各位,楼上的很好用,如何将结果保存在KK.TXT
谢谢了

TOP

回复 5# apang


    如果有一个txt文件内容为空,代码会出错。

TOP

KK.TXT放在其他文件夹也可以,比如桌面,谢谢了

TOP

本帖最后由 apang 于 2013-12-27 10:15 编辑

回复 7# DAIC
  1. @set @n=1 //&dir /b *.txt|cscript -nologo -e:jscript "%~0">KK.log &pause&exit /b
  2. var fso = new ActiveXObject("Scripting.FileSystemObject");
  3. var ar = new Array("曾孝琼","陈家江","关山月");
  4. while (!WScript.StdIn.AtEndOfstream) {
  5.     var f = WScript.StdIn.ReadLine();
  6.     if (fso.GetFile(f).Size >0) {
  7.         var txt = fso.OpenTextFile(f).ReadAll();
  8.         var s = "";
  9.         for (i in ar) {
  10.             if (txt.indexOf(ar[i]) >-1) {s += ar[i] + " "};
  11.         };
  12.         if (s != "") WScript.StdOut.WriteLine(s+f);
  13.     };
  14. }
复制代码

TOP

谢谢了,就是这样子,很好用

TOP

返回列表