中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-18 06:52
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 模糊查找b.txt中的IP地址保存到c.txt需要大家完善 查看 1,146 回复 5
楼 主 模糊查找b.txt中的IP地址保存到c.txt需要大家完善 发表于 2007-12-31 22:52 ·  中国 北京 联通
初级用户
积分 26
发帖 11
注册 2007-12-18 19:56
UID 106068
性别 男
状态 离线
假如文件b.txt内容如下:
yuyuftttftfdhdhdhdhdhdhdhdhdh
fgffgfggfsssseeessfd196.168.002.001hhhhh

查找ip.bat 文件如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=2,3 delims==/." %%i in ('findstr . b.txt') do (
set ybx=%%i.%%j
call 查找ip0.bat %ybx%
)
endlocal

查找ip0.bat 文件如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /L %%i in (0,1,9) do find b.txt "%ybx%.00%%i" && ( set ybx=%ybx%.00%%i& goto ybx)
for /L %%i in (10,1,99) do find b.txt "%ybx%.0%%i" && ( set ybx=%ybx%.0%%i& goto ybx)
for /L %%i in (100,1,999) do find b.txt "%ybx%.%%i" && ( set ybx=%ybx%.%%i& goto ybx)
:ybx
call 查找ip1.bat %ybx%
cls
endlocal

查找ip1.bat 文件如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /L %%i in (0,1,9) do find b.txt "00%%i.%ybx%" && (set ybx=00%%i.%ybx%& goto ybx)
for /L %%i in (10,1,99) do find b.txt "0%%i.%ybx%" && (set ybx=0%%i.%ybx%& goto ybx)
for /L %%i in (100,1,199) do find b.txt "%%i.%ybx%" && (set ybx=%%i.%ybx%& goto ybx)
:ybx
cls
echo %ybx%>c.txt
pause
endlocal

能够查到196.168.002.001保存到c.txt中,可是效率不高,并且196.168.2.1写的还不行.请高手帮忙,谢谢!
2 发表于 2007-12-31 23:57 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
UID 79003
性别 男
状态 离线
你先明确你的b.txt里的内容……是不是

无序字母+IP+无序字母……没有其他的杂的东西。。。如果这样话你把里面的数字和.提取出来就是IP了……
3 发表于 2008-01-01 00:03 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
UID 74552
性别 男
状态 离线

echo 415646192.168.0.115846 >x.txt
@echo off&setlocal enabledelayedexpansion 2>nul 3>nul
for /f "tokens=1-4 delims=." %%a in ('findstr "..." x.txt') do (
set/aip1=%%a,ip2=%%b,ip3=%%c,ip4=%%d
call :chkip 1 !ip1:~-3!
call :chkip 2 !ip2!
call :chkip 3 !ip3!
call :chkip 4 !ip4:~0,3!
echo !ip1!.!ip2!.!ip3!.!ip4!
)
pause


:chkip
set ip=
set nip=%~2
set /a ip=1%nip:~-1%,ip=1%nip:~-2%,ip=1%nip:~-3%
set /a ip=%ip:~1%
set /a 1/(255/ip)&&set nip=%ip:~-3%||set nip=%ip:~-2%
set /a ip%1=nip
goto :eof
4 发表于 2008-01-01 00:17 ·  中国 浙江 杭州 电信
高级用户
★★
积分 537
发帖 219
注册 2007-08-04 09:43
UID 94620
性别 男
来自 杭州--半山
状态 离线
我这个可以吗?我没有测试文件

awk "{d=gensub(/[^0-9\.]/,\"\n\",\"g\",$0);print d}" test.txt | awk -F"\056" "{if(/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/){if(length($1)<4&&length($2)<4&&length($3)<4&&length($4)<4&&$1<256&&$2<256&&$3<256&&$4<256)print $0}}"
5 发表于 2008-01-02 14:18 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
gawk --posix "{while(match($0,\"{1,3}\\.{1,3}\\.{1,3}\\.{1,3}\")){print substr($0,RSTART,RLENGTH);$0=substr($0,RSTART+RLENGTH)}}" Urfile.ext
6 发表于 2008-04-29 21:09 ·  中国 北京 联通
初级用户
积分 26
发帖 11
注册 2007-12-18 19:56
UID 106068
性别 男
状态 离线
太感谢各位大侠啦,我虽然不懂,但还是为您们的诚意感动
论坛跳转: