中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-28 02:16
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,277 会员排行
DOS批处理 & 脚本技术(批处理室) » 讨论:用findstr 判断输入的ip是否合法
可打印版本  3,292 / 36
第16楼 pooronce 发表于 2008-05-09 17:06
中级用户 发帖 250 积分 484
它说了是Regular expression,也说了是“快速参考”,所以我觉得好歹不应该只有这一点的。
但可惜一直找不到它具体支持的列表
第17楼 huahua0919 发表于 2008-05-09 17:14
银牌会员 发帖 780 积分 1,608
基本就那么多吧
?,/d /w /n /r 很多都没用
第18楼 HAT 发表于 2008-05-10 01:46
版主 发帖 5,017 积分 9,023
在CU潜水时看到的:

匹配IP地址
\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)
\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\)
第19楼 joyn 发表于 2008-05-10 02:42
中级用户 发帖 105 积分 280 来自 广西
findstr这个命令我用的少~~
第20楼 26933062 发表于 2008-05-10 11:58
银牌会员 发帖 879 积分 2,268
18楼 HAT 兄弟,能给个完整代码吗?我用你的测试怎么都不对啊??
第21楼 terse 发表于 2008-05-10 12:19
银牌会员 发帖 946 积分 2,404
这样呢
findstr "^*\.*\.*\.*$"
@echo off
set /p ip=请输入IP:
echo %ip%|findstr "^*\.*\.*\.*$">nul||goto err
set ip1=%ip:.= %
call:lp %ip1%
:lp
if "%4"=="" echo ip格式不对&pause&exit
echo 正确
pause&exit
:err
echo ip格式不对&pause&exit

[ Last edited by terse on 2008-5-10 at 12:21 PM ]
第22楼 slore 发表于 2008-05-10 12:55
铂金会员 发帖 2,478 积分 5,212
Originally posted by terse at 2008-5-10 12:19:
这样呢
findstr "^*\.*\.*\.*$"
@echo off
set /p ip=请输入IP:
echo %ip%|findstr "^*\.*\.*\.*$">nul||goto err
set ip1=%ip:.= ...


256.256.256.256

正确=。=
第23楼 slore 发表于 2008-05-10 13:14
铂金会员 发帖 2,478 积分 5,212
@echo off
set /p ip=请输入IP:
echo %ip%|findstr "^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$">nul||goto err
set ip1=%ip:.= %
call:lp %ip1%
:lp
if %1 GEQ 232 echo ip格式不对&pause&exit
if %2 GEQ 255 echo ip格式不对&pause&exit
if %3 GEQ 255 echo ip格式不对&pause&exit
if %4 GEQ 255 echo ip格式不对&pause&exit
echo 正确
pause&exit
:err
echo ip格式不对&pause&exit
第24楼 terse 发表于 2008-05-10 13:21
银牌会员 发帖 946 积分 2,404
Originally posted by slore at 2008-5-10 13:14:
@echo off
set /p ip=请输入IP:
echo %ip%|findstr "^*\.*\.*\.*$">nul||goto err
set ip1=%ip:.= %
call:lp %ip1%
:lp
if %1 GEQ 232 echo ip格式不对&pau ...

如果考虑255以上情况 可以简化一下IP标签下
@echo off
set /p ip=请输入IP:
echo %ip%|findstr "^*\.*\.*\.*$">nul||goto err
set ip1=%ip:.= %
call:lp %ip1%
:lp
if "%4"=="" goto err
for %%i in (%ip1%) do if %%i gtr 255 goto err
echo 正确
pause&exit
:err
echo ip格式不对&pause&exit

[ Last edited by terse on 2008-5-10 at 01:23 PM ]
第25楼 dikex 发表于 2008-05-10 13:24
高级用户 发帖 366 积分 788
Originally posted by HAT at 2008-5-10 01:46 AM:
在CU潜水时看到的:

匹配IP地址
\(\{1,3\}\.\{1,3\}\.\{1,3\}\.\{1,3\}\)
\(\(\{1,3\}\.\)\{3\}\{1,3\}\)


测试失败……

首先应该没有换行……
将转义字符“\”弄回去后
({1,3}.{1,3}.{1,3}.{1,3})(({1,3}.){3}{1,3})

但findstr 貌似不支持 {N} 以及分组,所以这个用不了
第26楼 26933062 发表于 2008-05-10 13:26
银牌会员 发帖 879 积分 2,268
就是想直接用findstr就判断出格式是否正确,
写了个自己都看不懂的代码,但却可以达到效果。
第27楼 dikex 发表于 2008-05-10 13:41
高级用户 发帖 366 积分 788
[0-9]*[0-9]

所匹配的是数字,且至少是1位,可以是2、3……N位
第28楼 26933062 发表于 2008-05-10 13:44
银牌会员 发帖 879 积分 2,268
27 楼 没注意楼主要求吧,不需要判断数字的位数,当然能判断更好。
第29楼 FQ 发表于 2008-05-10 17:01
社区乞丐 发帖 37 积分 -61
新手,请各路大侠指教


[ Last edited by FQ on 2008-5-10 at 10:39 PM ]
第30楼 youling126 发表于 2008-05-10 18:48
初级用户 发帖 42 积分 87
findstr还不怎么会用,谁懂的发个贴来介绍介绍
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023