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

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

本帖最后由 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
复制代码

不要随便改变 Path 变量
1

评分人数

    • 77720666: 一时忘了PATH是系统变量。。技术 + 1

TOP

@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
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

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

TOP

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


findstr 可以直接用 *吗?之前试过 *.txt 都提示无发打开的

TOP

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

评分人数

TOP

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


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

明天给你补分~新人每24小时只有1评分

TOP

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



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

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

如这样头部匹配后面也多余字符的文件也列出来了~需要再搞个IF判断

TOP

j加参数 x 呢

TOP

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


发问前已试过不行,会漏掉部分文件
是否会因为文本是Unix格式问题?

TOP

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

应该是吧 你转一下格式 试试 就知道了

TOP

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


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

TOP

返回列表