中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 22:23
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]在文本与BAT中查找字符串工具 查看 1,077 回复 3
楼 主 [原创]在文本与BAT中查找字符串工具 发表于 2007-10-01 00:19 ·  中国 浙江 杭州 电信
高级用户
★★
积分 537
发帖 219
注册 2007-08-04 09:43
19年会员
UID 94620
性别 男
来自 杭州--半山
状态 离线
@echo off
@cls
@ color a
@title 非二进制文件字符串查询工具
::----------------------------------------------BY-junchen2--date-2007-29
if "%1"=="/?" goto help
:1
::part1-----------------------------------------
set dp=
set str=
echo string drive:path
set /p val=
setlocal enabledelayedexpansion
@for /f "tokens=1-2" %%a in ("%val%") do (
set str=%%a & set dp=%%b &set c=!dp:~3,1!
if "!c!"=="" goto 3 else (goto 2)
)
::part2------------------------------------------
:2
@for /f "delims=" %%d in ('findstr /i /s /m "%str%" %dp%\*.txt') do (if exist %%~sd (
start %%~sd
call :2 %%~nxd %str%
1.vbs
pause>nul
) else (@echo %%d >> noopen.txt)
)
if exist noopen.txt start noopen.txt
::----------------------------------------------------
setlocal enabledelayedexpansion
@for /f "delims=" %%d in ('findstr /i /s /m "%str%" %dp%\*.bat') do ( if exist %%~sd (
@set "pf=%%~sd.txt"
@echo !pf!
pause>nul
copy %%~sd !pf!
start !pf!
call :2 !pf! %str%
1.vbs
pause
del /q !pf!
) else (@echo %%d >> noopen.txt)
)
if exist noopen.txt start noopen1.txt
goto 1
:: part 3-------------------------------------------

:3
@for /f "delims=" %%d in ('findstr /i /s /m "%str%" %dp%\*.txt') do (if exist %%~sd (
start %%~sd
call :2 %%~nxd %str%
1.vbs
pause>nul
) else (@echo %%d >> noopen.txt)
)
if exist noopen.txt start noopen.txt
::------------------------------------------------
setlocal enabledelayedexpansion
@for /f "delims=" %%d in ('findstr /i /s /m "%str%" %dp%\*.bat') do ( if exist %%~sd (
@set "pf=%%~sd.txt"
@echo !pf!
pause>nul
copy %%~sd !pf!
start !pf!
call :2 !pf! %str%
1.vbs
pause
del /q !pf!
) else (@echo %%d >> noopen.txt)
)
if exist noopen.txt start noopen1.txt
goto :1
:: part 3

::part4 call.vbs-----------------------------
:2
echo Dim WshShell > 1.vbs
echo Set WshShell=WScript.CreateObject("WScript.Shell") >> 1.vbs
echo WScript.Sleep 200 >> 1.vbs
echo WshShell.AppActivate "%1" >> 1.vbs
echo WshShell.SendKeys "^f" >> 1.vbs
echo WshShell.SendKeys "%2" >> 1.vbs
echo WshShell.SendKeys "^{Enter}" >> 1.vbs
goto :eof

:::part5--------------------------------------

:help
@echo 脚本在TXT和BAT文件中查找字符。
@echo 对特殊字符串支持不够
@echo 会生成一个VBS脚本,请注意,对查找汉字不支持

pause
goto :1
::part5---------------------------------------

[ Last edited by junchen2 on 2007-10-1 at 12:23 AM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
guixi +2 2007-10-11 23:38
2 发表于 2007-10-01 08:38 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
唯一建议,该缩进的就缩进

写东西也要注重美观的
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
guixi +2 2007-10-11 23:37
3 发表于 2007-10-01 09:26 ·  中国 浙江 杭州 电信
高级用户
★★
积分 537
发帖 219
注册 2007-08-04 09:43
19年会员
UID 94620
性别 男
来自 杭州--半山
状态 离线
谢谢wudixin96兄指点,努力改进!
4 超長字符怎麼辦呢 发表于 2007-10-02 09:44 ·  IANA 局域网IP(Private-Use)
初级用户
积分 50
发帖 20
注册 2007-09-09 17:45
18年会员
UID 96949
性别 男
状态 离线
我有一個文件,我不知道怎麼上傳,所以放到我的空間了,那個文件第三行太長了,不能查找,我想要Total_Test_Time的值,麻煩你幫我看一下
http://loveant521.ys168.com/
卡巴斯基文件夾裡面的那個i.txt
论坛跳转: