![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 23:17 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创]在文本与BAT中查找字符串工具 |
| 可打印版本 1,078 / 3 |
| 第1楼 junchen2 | 发表于 2007-10-01 00:19 |
| 高级用户 发帖 219 积分 537 来自 杭州--半山 | |
|
[原创]在文本与BAT中查找字符串工具 @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 ] |
|
| 第2楼 wudixin96 | 发表于 2007-10-01 08:38 |
| 银牌会员 发帖 931 积分 1,928 | |
|
唯一建议,该缩进的就缩进
写东西也要注重美观的 |
|
| 第3楼 junchen2 | 发表于 2007-10-01 09:26 |
| 高级用户 发帖 219 积分 537 来自 杭州--半山 | |
|
谢谢wudixin96兄指点,努力改进!
|
|
| 第4楼 loveant521 | 发表于 2007-10-02 09:44 |
| 初级用户 发帖 20 积分 50 | |
|
超長字符怎麼辦呢 我有一個文件,我不知道怎麼上傳,所以放到我的空間了,那個文件第三行太長了,不能查找,我想要Total_Test_Time的值,麻煩你幫我看一下
http://loveant521.ys168.com/ 卡巴斯基文件夾裡面的那個i.txt |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |