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

[文本处理] 批处理怎样查找在文本中包含指定字段的的文档路径?

之前用过一个程序可以查找在文本中包含指定字段的的文档
  1. @echo off
  2. color 0a
  3. title 《sample》
  4. [color=Red](for %%i in (C D E) do findstr /sic:"echo" %%i:\*.bat)>>c:\bat.TXT[/color]
  5. pause
复制代码
但是如果我想指定路径比如,就发现没效果了呢 路径应该怎么写呢
  1. @echo off
  2. color 0a
  3. title 《sample》
  4. [color=Red](for %%i in (“C:\bat”) do findstr /sic:"echo" %%i:\*.bat)>>c:\bat.TXT[/color]
  5. pause
复制代码

  1. findstr /sic:"echo" "C:\bat\*.bat">>c:\bat.TXT
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

findstr /sic:"echo" "C:\bat\*.bat">>c:\bat.TXT
hanyeguxing 发表于 2011-4-18 09:28

多谢版主 不过我是希望也能够遍历C:\bat的子文件夹 不知道应该如何写呢?

TOP

findstr /sic:"echo" "C:\bat\*.bat">>c:\bat.TXT
hanyeguxing 发表于 2011-4-18 09:28

说错了,这样只会显示无数个执行语句的
F:\>findstr /sic:"copy" "F:\testbat\AutoRunCubeScriptt\*.bat" 1>>c:\bat.TXT

TOP

帮忙看看~多谢

TOP

说错了,这样只会显示无数个执行语句的
F:\>findstr /sic:"copy" "F:\testbat\AutoRunCubeScriptt\*.bat" 1>>c:\bat.TXT
FIR1987 发表于 2011-4-19 00:03

不懂楼主此处说的是什么意思,只想要文件名么?那把/sic改成/simc就行了

TOP

本帖最后由 FIR1987 于 2011-4-21 09:12 编辑

我是希望也能够遍历C:\bat的以及其子文件夹中所有后缀名为bat的文件,如果这些bat文件中含有echo则显示到某一个文本中。

我一楼实现的是遍历c盘下的所有后缀名为bat的文件,如果这些bat文件中含有echo则显示到某一个文本中。
不知道才c:\bat这个路径应该怎么写

多谢~

TOP

“如果这些bat文件中含有echo则显示到某一个文本中。”
又没说出重点,到底是要文件名还是只要符合条件的内容

TOP

就像我一楼那样的显示~
左边文件:内容
e:\bea\weblogic81\common\eval\dbvisualizer\run.batecho off
不知道路径怎么写 谢谢

TOP

可是2楼的代码就是那个意思啊,findstr中存在/s开关时,c:\bat\*.bat是包括子目录的

TOP

不好意思 是我不仔细
为了完善下功能,编辑如下
  1. @echo off
  2. :repeat
  3. set /p dir=请输入你要查找的路径:
  4. set /p keyword=请输入你要查找的关键字:
  5. echo.>>c:\bat.TXT
  6. findstr /sic:%keyword%  %dir%>>c:\bat.TXT
  7. set /p flag=是否还要继续?(输入yes将继续搜索指定文件)
  8. if "%flag%"=="yes" goto repeat else echo 结束
  9. pause
复制代码

TOP

据说 findstr /d 也很好用 有了解的说下哈 我回头也研究下

TOP

如果我想取得当前行即显示keyword又显示当前日期的日比如25的行 这样写为啥出不来呢 请指教

@echo off
:repeat
set  Var=%date:~8,2%
set /p dir=请输入你要查找的路径:例如("c:\a\*.txt")
set /p keyword=请输入你要查找的关键字:(key)
echo.>>c:\bat.TXT
findstr /sic:%keyword%&%Var%  %dir%>>c:\bat.TXT
set /p flag=是否还要继续?(输入yes将继续搜索指定文件)
if "%flag%"=="yes" goto repeat else echo 结束
pause

TOP

findstr>>c:\bat.TXT /sic:"%keyword%" /c:"%Var%"  %dir%

TOP

14# zm900612
非常谢谢
不过有三个小问题
1 我希望的是有keyword并且有25(当天日期)的行 不是有keyword或者25的行
2我的是哪里有问题。。。没看出来
3findstr还可以直接>>这个用法能,能讲讲吗

谢谢
目前是一个批处理初学者,问的傻问题还请多多见谅

TOP

返回列表