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

[文本处理] [已解决]批处理如何查找当前目录及子目录下文本内容中包含指定字符串的文本?

本帖最后由 pcl_test 于 2016-9-25 20:56 编辑

比如在D:\abc 以及abc下还有很多子目录,每个目录下有很多txt文件,
请问如何找到所有这些文件内容中(不是文件标题)包含“专业”这个字符串的所有文件名呢?最好是输出到一个文件中。
谢谢大家!
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

首先你所需要的不需要批处理,命令就可以解决
方法1:
  1. Dir /S *专业*
复制代码
Dir /S 搜索命令 如果要输出要一个文件加上重定向符号即可
  1. Dir /S *专业* >> File.txt
复制代码
方法2:
  1. For /R %A In (专业) Do @Echo %A
复制代码
For /R 递归搜索命令,会连目录中包含《专业》的目录也输出来。输出到文件是这样写
  1. For /R %A In (专业) Do @Echo %A >> File.txt
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

首先你所需要的不需要批处理,命令就可以解决
方法1:Dir /S 搜索命令 如果要输出要一个文件加上重定向符号 ...
冷玉公子 发表于 2011-11-17 19:31



    谢谢回复

但是我的目的不是搜索文件标题,而是搜索文件内容,如果内容中含有指定的字符串,则输出文件名。
再麻烦你一下,谢谢

TOP

我的目的不是搜索文件标题,而是搜索文件内容,如果内容中含有指定的字符串,则输出文件名。
再麻烦大家一下,谢谢

TOP

  1. findstr /lms 专业 *.txt
复制代码
1

评分人数

TOP

本帖最后由 Hello123World 于 2011-11-21 20:27 编辑
  1. @echo off
  2. (for /f "delims=" %%i in ('Dir /s /b /a-d d:\abc\*.txt') do Findstr /m "专业" "%%i")>包含专业.txt
  3. start 包含专业.txt
  4. pause
复制代码
还是crlf高明,/l可以省了。
1

评分人数

    • CrLf: 乐于助人PB + 5

TOP

能不能改进一下,把包含指定特殊字符的文件移动到当前目录新建一个特殊字符的文件夹里。比如,在当前目录新建一个“专业”的文件夹,把当前目录及子目录下 含“专业”的所有文件都移动到这个“专业”的文件夹里。相当于当前目录下文件归档之类的意思吧。

TOP

本帖最后由 flyinnet9 于 2015-9-18 14:40 编辑
  1. @echo off
  2. md 专业
  3. for /f "delims=" %%a in ('dir /s /b /a-d ^|findstr "专业"') do move /y "%%a" .\专业\
复制代码

TOP

本帖最后由 279491611 于 2015-9-18 14:34 编辑

回复 8# flyinnet9

我的是  文件名  中含有"专业“的文件,都移动到"专业"的目录下面,不好意思,我没表述清楚. 比如说: 结构专业.doc  建筑专业.dwg  电气专业.xls .机电专业二次修改.pdf     .................. 等等文件 都移动到 当前 目录 ”专业“的文件夹里

TOP

回复 9# 279491611


    已改

TOP

回复 8# flyinnet9


    谢谢得偿所愿.

TOP

本帖最后由 flyinnet9 于 2015-9-18 15:41 编辑

回复 11# 279491611

上面的有点问题,用这个吧,效率不高
  1. @echo off
  2. md 专业
  3. for /f "delims=" %%a in ('dir /s /b /a-d') do for /f "delims=" %%b in ('echo "%%~na" ^|findstr "专业"') do move /y "%%a" .\专业\
复制代码
这样效率高点??
  1. @echo off
  2. md 专业 2>nul
  3. for /f "delims=" %%a in ('dir /s /b /a-d') do echo %%~na |findstr "专业" >nul && move /y "%%a" .\专业\
复制代码
1

评分人数

TOP

回复 12# flyinnet9


    谢谢你在精益求精中提升.

TOP

回复 12# flyinnet9
  1. dir /s /b /a-d|findstr /e "\\[^\\]*专业[^\\]*"
复制代码

TOP

回复 10# flyinnet9


    那么请问,如何移动文件中含有固定字符串的文件到固定的文件夹中?比如我有好多个txt文件,有些txt文件中含有“AA BB”这个字符串,我想把这些文件移动到AA这个文件夹中。谢谢!

TOP

返回列表