Board logo

标题: findstr文本查找 [打印本页]

作者: kioskboy     时间: 2008-3-27 20:23    标题: findstr文本查找

有”色 酷全书“ 文件夹(有子文件夹),怎样找txt文件里面有”小龙女深情脉脉的看着杨过“字符,
把包含该字符的文件 的全路径显示出来

顺便问下 要在”色 酷全书“ 文件夹(有子文件夹)下找 笑傲江湖.txt,
用命令提示符号怎么找啊

[ Last edited by kioskboy on 2008-8-28 at 06:59 PM ]
作者: HAT     时间: 2008-3-27 21:41
answer for question 1:
@echo off
set SrcDir=C:\test\色 酷全书
for %%a in ("%SrcDir%\*.txt") do (
  findstr 小龙女深情脉脉的看着杨过 "%%a" >nul&&echo %%a
)

作者: HAT     时间: 2008-3-27 21:44
answer for question 2:
@echo off
set SrcDir=C:\test\色 酷全书
for /f "tokens=*" %%a in ('dir /s /b "%SrcDir%\*.txt"') do (
  echo %%a | findstr "笑傲江湖.txt"
)

作者: kioskboy     时间: 2008-3-28 19:43
@echo off
set SrcDir="C:\Program Files\新建文件夹\色 酷全书"
for %%a in ("%SrcDir%\*.txt") do (
  findstr 小龙女深情脉脉的看着杨过 "%%a" >nul&&echo %%a
)
pause

显示:  FINDSTR: 无法打开 "C:\Program
怎么办呀

[ Last edited by kioskboy on 2008-3-28 at 07:49 PM ]
作者: tvzml     时间: 2008-3-28 20:46
setbookpath=x:\色 酷全书
if not exist book MD book
for /r "%setbookpath%" %%a in (*.txt) do find "小龙女深情脉脉的看着杨过" "%%a" && copy /y "%%a" "book"
cd /d "book"
dir /b >..\清单.txt
start NOTEPAD ..\清单.txt
作者: kioskboy     时间: 2008-3-28 20:59


  Quote:
Originally posted by tvzml at 2008-3-28 08:46 PM:
setbookpath=x:\色 酷全书
if not exist book MD book
for /r "%setbookpath%" %%a in (*.txt) do find "小龙女深情脉脉的看着杨过" "%%a" && copy /y  ...

好像还是不行,我测试了其它存在的文字,找不到啊
我的目录是 : C:\Program Files\新建文件夹\色 酷全书
色 酷全书下有多级的子文件夹,你的好像只遍历一级吧 ,能直接在cmd的界面上显示出其完整路径吗

[ Last edited by kioskboy on 2008-3-28 at 09:06 PM ]
作者: 26933062     时间: 2008-3-28 21:22
:
@echo off
set "wjj=C:\Program Files\新建文件夹\色 酷全书"
for /f "delims=" %%a in ('dir/b/s "%wjj%\*.txt"') do (
  findstr "小龙女深情脉脉的看着杨过" "%%a" >nul&&echo %%a
)
pause

@echo off
set "wjj=C:\Program Files\新建文件夹\色 酷全书"
for /f "delims=" %%a in ('dir/s/b "%wjj%\笑傲江湖.txt"') do (
  echo %%a
)
pause

作者: HAT     时间: 2008-3-29 00:35


  Quote:
Originally posted by kioskboy at 2008-3-28 07:43 PM:
@echo off
set SrcDir="C:\Program Files\新建文件夹\色 酷全书"
for %%a in ("%SrcDir%\*.txt") do (
  findstr 小龙女深情脉脉的看着杨过 "%%a" >nu ...

set SrcDir的时候不需要加双引号
作者: kioskboy     时间: 2008-3-29 09:47


  Quote:
Originally posted by HAT at 2008-3-29 12:35 AM:

set SrcDir的时候不需要加双引号

我测试了下,好像不行哦,D:\Program Files\ 好像非要定界符号的

算了,不换元了,可能电脑不同。麻烦HAT大虾帮我来简单一点解决上面两个问题
由于我的机子 WshSHell.RegWrite "HKEY_CLASSES_ROOT\Folder\shell\cmd\","cmd",sz
WshSHell.RegWrite "HKEY_CLASSES_ROOT\Folder\shell\cmd\command\","cmd.exe /k cd %1",sz
所以文件夹下有cmd进入当前目录,
C:\Program Files\新建文件夹\色 酷全书

那么 不用创建批处理文件,用哪两句话可以解决上面的问题呢

[ Last edited by kioskboy on 2008-3-29 at 09:52 AM ]
作者: ThinKing     时间: 2008-3-29 14:08
1、
findstr /smic:"小龙女深情脉脉的看着杨过" "path\to\色 酷全书"
2、
dir /s/b/a-d "path\to\色 酷全书\笑傲江湖.txt"

作者: kioskboy     时间: 2008-3-29 18:36


  Quote:
Originally posted by ThinKing at 2008-3-29 02:08 PM:
1、
findstr /smic:"小龙女深情脉脉的看着杨过" "path\to\色 酷全书"
2、
dir /s/b/a-d "path\to\色 酷全书\笑傲江湖.txt"

不行啊,运行了没有反应,path\to 能行吗?后面怎么还有个色 酷全书呢,不是已经在当前目录了吗
findstr 好像不行了,我的电脑是XP的,没有 /smic 命令参数
改个一句话的FOR吧

[ Last edited by kioskboy on 2008-3-29 at 06:44 PM ]
作者: HAT     时间: 2008-3-30 01:55
findstr 好像不行了,我的电脑是XP的,没有 /smic 命令参数
=====================================
/smic == /s /m /i /c
作者: kioskboy     时间: 2008-4-1 14:00
那"path\to\色 酷全书\笑傲江湖.txt" 的path\to\算什么,
笑傲江湖.txt 又不在一级目录下

在cmd的C:\Program Files\新建文件夹\色 酷全书 目录下,
谁给个For的命令我吧

[ Last edited by kioskboy on 2008-4-1 at 02:08 PM ]
作者: abcd     时间: 2008-4-1 14:12

findstr /smic:"小龙女深情脉脉的看着杨过" "C:\Program Files\新建文件夹\色 酷全书\*.txt"
肯定是可以的
dir /s/b/a-d "C:\Program Files\新建文件夹\色 酷全书\笑傲江湖.txt"

作者: kioskboy     时间: 2008-4-1 14:45
谢谢大家,终于想明白了,解决了

findstr /smic:"小龙女深情脉脉的看着杨过" "C:\Program Files\新建文件夹\色 酷全书\*.txt" 这句话我总觉得后面“C:\Program Files\新建文件夹\色 酷全书\”太长了

为了不让未成年小女生看到,我把它搬到了“D:\Program Files\Microsoft Office\Common Files\system\abc\色 酷全书”下面,
搜索的时候老要加在后面加”D:\Program Files\Microsoft Office\Common Files\system\abc\色 酷全书\*.txt“
麻烦啊   
我已经在在cmd.exe shell的D:\Program Files\Microsoft Office\Common Files\system\abc\色 酷全书> 目录下了
有时我在D:\Program Files\Microsoft Office\Common Files\system\abc\色 酷全书\情色杂集>下

请问好像可以用什么0%或者1%,把它代换了,编辑粘贴麻烦,改个一句话的for也可以,
用什么管道命令帮忙应该可以吧

[ Last edited by kioskboy on 2008-4-1 at 02:51 PM ]
作者: kioskboy     时间: 2008-4-1 14:49
findstr /smic:"小龙女深情脉脉的看着杨过"

dir /s/b/a-d "笑傲江湖.txt"

未什么不行啊,不是已经在当前目录下,
看来findstr 和dir命令还差一个参数,待改进

[ Last edited by kioskboy on 2008-4-1 at 02:52 PM ]
作者: abcd     时间: 2008-4-1 16:03

@echo off
set "ph=D:\Program Files\Microsoft Office\Common Files\system\abc\色 酷全书"
pushd "%ph%"
findstr /smic:"小龙女深情脉脉的看着杨过" *.txt
popd
pause>nul
dir /s/b/a-d "笑傲江湖.txt"
作者: plp626     时间: 2008-4-1 16:32
这是我字符搜索"命令行工具"(真不好意思说)
有什么命令的用法不很清楚就在命令提示符下输入:
cmdstr shift

你根据需要将路径改成你自己的
@echo off
set "load=G:\cmd\批处理范例\bat文件"
for /f "tokens=*" %%i in ('findstr /ms %1 "%load%\*.txt" ^|findstr .') do start /max /wait notepad "%%i"
goto :eof

作者: ThinKing     时间: 2008-4-2 02:40


  Quote:
有什么命令的用法不很清楚就在命令提示符下输入:
cmdstr shift

什么意思?
作者: kioskboy     时间: 2008-4-2 11:36


  Quote:
Originally posted by abcd at 2008-4-1 04:03 PM:
[code]
@echo off
set "ph=D:\Program Files\Microsoft Office\Common Files\system\abc\色 酷全书"
pushd "%ph%"
findstr /smic:"小龙女深情脉脉的看着杨过" ...

1  findstr /smic:"小龙女深情脉脉的看着杨过" *.txt
    显示相对路径(当前目录运行)
2  dir /s/b/a-d "笑傲江湖.txt"
    显示绝对路径(当前目录运行)
谢谢你,就这样了,
如果都显示绝对路径就好了
好像question 1 除了 findstr /smic:"小龙女深情脉脉的看着杨过" *.txt 都可以不要,结果一样
能把question 1 用管道命令的复合语句 一句话解决掉吗(显示绝对路径)
作者: plp626     时间: 2008-4-2 13:01


  Quote:
Originally posted by ThinKing at 2008-4-2 02:40 AM:

什么意思?

cmdstr是批处理文件名,shift是我不是很清楚的命令名,我只是举个例子.
作者: plp626     时间: 2008-4-2 13:03


  Quote:
Originally posted by kioskboy at 2008-4-2 11:36 AM:


1  findstr /smic:"小龙女深情脉脉的看着杨过" *.txt
    显示相对路径(当前目录运行)
2  dir /s/b/a-d "笑傲江湖.txt"
    如果能显示绝对路径就好了( ...

路径自己设定
@echo off
set "load=G:\cmd\批处理范例\bat文件"
for /f "tokens=*" %%i in ('findstr /ms %1 "%load%\*.txt" ^|findstr .') do echo.绝对路径为: "%%i"
goto :eof