本帖最后由 xudaweb 于 2011-8-28 09:34 编辑
问题描述:
1. 路径不同的文件夹内含有相同的文本test.txt, 如:
C:\test 2\test.txt, c:\1_temp\test.txt, c:\2\3\test.txt 等很多个同名的文本...
2. 在所有的test.txt中查找指定的字符串string: "ABC123"
3. 如果查找到字符串,则反馈查找到字符的文本的完整路径(最好能直接打开其路径)。
本人新人,折腾了好久,没有任何进展,遇到的问题:
a, 用for无法指定不同路径下test.txt
b, 用find查找后,文本的路径截取不出来
c, 无法直接打开其路径
试了好多终于试出来了,现做如下更新,希望能给跟我同样困惑的人一点点帮助。
i. 直接打开搜索到文本- @echo off
- set /p str=Please input the string:
- for /f "delims=" %%i in ('dir /s /b test.txt') do (
- findstr /i /c:"%str%" "%%i" && (echo %%i & start "" "%%i")
- )
复制代码 ii. 搜索到文本后直接打开文本当前路径- @echo off
- set /p str=Please input the string:
- for /f "delims=" %%i in ('dir /s /b test.txt') do (
- findstr /i /c:"%str%" "%%i" && start "" "%%~dpi"
- )
复制代码 iii. 搜索到文本后直接打开文本的上一级路径- @echo off
- set /p str=Please input the string:
- for /f "delims=" %%i in ('dir /s /b test.txt') do (
- findstr /i /c:"%str%" "%%i" && for %%j in ("%%~dpi\..") do (start "" "%%~fsj")
- )
复制代码 iv. 搜索到文本后直接打开本文的上上级路径- @echo off
- set /p str=Please input the string:
- for /f "delims=" %%i in ('dir /s /b test.txt') do (
- findstr /i /c:"%str%" "%%i" && for %%j in ("%%~dpi\..\..") do (start "" "%%~fsj")
- )
复制代码
|