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

[文件操作] [已解决]查找文件夹文本内容判断,符合条件则输出

本帖最后由 czvde 于 2022-4-8 11:55 编辑

文件夹中有3个文件:
123.txt
456.txt
abc.txt


123.txt
  1. 123
  2. 3
  3. 123
  4. 1
  5. 123
  6. 1
  7. 123
  8. 1
  9. 123
  10. 1
复制代码
456.txt
  1. 1
  2. 2
  3. 1111
  4. 3
  5. 1111
  6. 1
  7. 1111
  8. 1
  9. 1111
复制代码
abc.txt
  1. 1
  2. 2
  3. 1111
  4. 3
  5. 1
  6. 1
  7. 1111
  8. 1
复制代码
批处理运行之后,生成a.txt的文本内容为
  1. 123.txt
  2. 456.txt
复制代码
生成b.txt的文本内容为
  1. 123.txt
复制代码
已解决!

回复 1# czvde
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4.     for /f "delims=" %%j in ('type "%%i" ^| find /v /c ""') do (
  5.         echo %%i [包含空行]: %%j
  6.         if %%j geq 10 (
  7.             >>"a.log" echo,%%i
  8.             for /f "delims=" %%k in ('findstr . "%%i" ^| find /v /c ""') do (
  9.                 echo %%i [不包含空行]: %%k
  10.                 if %%k geq 10 (
  11.                     >>"b.log" echo,%%i
  12.                 )
  13.             )
  14.         )
  15.     )
  16. )
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

如果各个文本文件行数不多的话,可以考虑下面代码。未测试:
  1. @echo off
  2. set LineNum=10:
  3. for /f "delims=" %%a in ('dir /b /a-d *.txt') do (
  4.     findstr /n .* %%a|findstr /b %LineNum%>nul
  5.     if not errorlevel 1 (
  6.         echo,%%a>>a.txt
  7.         findstr . %%a|findstr /n .|findstr /b %LineNum%>nul
  8.         if not errorlevel 1 echo,%%a>>b.txt
  9.     )
  10. )
  11. pause
复制代码
1

评分人数

TOP

回复 7# Batcher


   1楼已重新修改要求

TOP

回复 5# czvde


    如果abc.txt总行数是11,但是有2个空行,算满足吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off & cd /d "%~dp0"
  2. (
  3. for %%i in (*.txt) do (
  4. findstr /n .* %%i | findstr "^10" >nul 2>nul && echo %%i
  5. )
  6. )>"a.txt"
  7. pause&exit
复制代码
1

评分人数

    • czvde: 好用,谢谢技术 + 1

TOP

回复 4# Batcher


    已修正abc.txt文本内容

TOP

回复 3# czvde


    顶楼的例子里面456.txt有个空行,abc.txt也有个空行,为何一个满足另一个不满足?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 czvde 于 2022-4-6 19:21 编辑

回复 2# Batcher

查找的文件,文本内容有10行以上(包含10行)都把文件名输出到a.txt

TOP

回复 1# czvde


    大于10行算满足还是不满足?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表