Board logo

标题: [文本处理] [已解决]批处理如何拖放一目录上去,搜索所有文件是否包含指定字符? [打印本页]

作者: 77720666    时间: 2015-5-8 03:36     标题: [已解决]批处理如何拖放一目录上去,搜索所有文件是否包含指定字符?

本帖最后由 77720666 于 2015-5-8 13:33 编辑

请问这段代码哪里错了?

我就是拖放一目录上去,搜索所有文件是否包含指定字符
怎么都显示 'findstr' 不是内部或外部命令,也不是可运行的程序
  1. @echo off
  2. Echo.
  3. Echo. 》》开始搜索
  4. cd %~dp0
  5. Set Path=%1
  6. Set FindText=b30b012353e5bda79bf75b31ea515b14
  7. if defined Path (
  8.    if defined FindText (
  9.       Echo %Path%
  10.       for /f "delims=" %%i in ('dir /s /b /a-d "%Path%" 2^>nul') do (
  11.           findstr /i "%FindText%" %%i
  12.           Pause
  13.       )
  14.    ) Else (
  15.       Echo.
  16.       Echo. 没有设置查找字符
  17.    )
  18. ) Else (
  19.    Echo.
  20.    Echo. 没有设置目录
  21. )
  22. Pause
复制代码

作者: CrLf    时间: 2015-5-8 05:20

不要随便改变 Path 变量
作者: gawk    时间: 2015-5-8 09:35

@echo off
Echo.
Echo. 》》开始搜索

cd %~dp0
Set MyPath=%1
Set FindText=b30b012353e5bda79bf75b31ea515b14
if defined MyPath (
   if defined FindText (
      Echo %MyPath%
      for /f "delims=" %%i in ('dir /s /b /a-d "%MyPath%" 2^>nul') do (
          findstr /i "%FindText%" %%i
          Pause
      )
   ) Else (
      Echo.
      Echo. 没有设置查找字符
   )
) Else (
   Echo.
   Echo. 没有设置目录
)
Pause
作者: terse    时间: 2015-5-8 11:33

这里 for dir 多余的吧 试试直接findstr
  1. findstr /is "%FindText%"   *.*
复制代码

作者: 77720666    时间: 2015-5-8 13:35

这里 for dir 多余的吧 试试直接findstr
terse 发表于 2015-5-8 11:33


findstr 可以直接用 *吗?之前试过 *.txt 都提示无发打开的
作者: terse    时间: 2015-5-8 17:41

回复 5# 77720666
不清楚你那边环境 最好贴一下你的 执行结果
  1. findstr /ims "%FindText%"  *.*
复制代码

作者: 77720666    时间: 2015-5-8 19:27

回复  77720666
不清楚你那边环境 最好贴一下你的 执行结果
terse 发表于 2015-5-8 17:41


谢谢~
我是以前试过不行,可能是参数错了~
回复你帖子时也没再试~现在试了确实可以~

明天给你补分~新人每24小时只有1评分
作者: 77720666    时间: 2015-5-8 19:41

回复  77720666
不清楚你那边环境 最好贴一下你的 执行结果
terse 发表于 2015-5-8 17:41



  还有个问题想请教下~
能不能直接用findstr搜索某目录下如 C:\mypath 下的所有文件 整行为指定字符的文件列表出来

findstr /isc:"on fs" C:\mypath

如这样头部匹配后面也多余字符的文件也列出来了~需要再搞个IF判断
作者: terse    时间: 2015-5-8 21:22

j加参数 x 呢
作者: 77720666    时间: 2015-5-8 21:32

j加参数 x 呢
terse 发表于 2015-5-8 21:22


发问前已试过不行,会漏掉部分文件
是否会因为文本是Unix格式问题?
作者: terse    时间: 2015-5-8 21:35

发问前已试过不行,会漏掉部分文件
是否会因为文本是Unix格式问题?
77720666 发表于 2015-5-8 21:32

应该是吧 你转一下格式 试试 就知道了
作者: 77720666    时间: 2015-5-8 21:42

应该是吧 你转一下格式 试试 就知道了
terse 发表于 2015-5-8 21:35


果真是格式问题,能加参数解决吗?
如果需要转格式的话我还是加多个IF判断方便




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2