[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [己解决]IP格式识别的批处理该如何编写?

:ip
set /p ip=地址:
if /i "%ip%"=="IP格式代码" goto a
goto ip
:a


请教高手,这个IP格式代码该如何编写??

要求识别格式:*.*.*.*
*表示:0-255

[ 本帖最后由 keshun 于 2010-10-13 02:58 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

000 也算吗?
如:001.000.12.0
技术问题请到论坛发帖求助!

TOP

回复 2楼 的帖子

也算,只要能识别*.*.*.*格式就行,数字要求不高,太致范围就行

TOP

标题

用findstr的正则表达式和管道命令符可以实现。手机上网,不方便写代码

[ 本帖最后由 broly 于 2010-10-12 08:39 编辑 ]

TOP

写了一个。如果你的IP含有@#等这些符号的,就行不通了。反正可以过滤掉英文字母。暂时还没有想到更好的
  1. @echo off
  2. :ip
  3. set /p ip=地址:
  4. for /f "tokens=1-3,* delims=." %%i in ("%ip%") do (
  5.   if %%i geq 0 (
  6.     if %%i leq 255 (
  7.       if %%j geq 0 (
  8.         if %%j leq 255 (
  9.           if %%k geq 0 (
  10.             if %%k leq 255 (
  11.               if %%l geq 0 (
  12.                 if %%l leq 255 ( (echo %%l | find ".">nul 2>nul) || echo 此为IP格式 &goto a)
  13.          )
  14.         )
  15.        )
  16.       )
  17.      )
  18.     )
  19.   )
  20. )
  21. goto ip
  22. :a
复制代码
---学无止境---

TOP

回复 5楼 的帖子

地址:121.11
此为IP格式
请按任意键继续. . .

在此感谢你的回复,只是当输入不完整的IP时也显示正确,可见判断格式上还存有缺陷,望解决。

要求能判断格式: *.*.*.* 也就是四段数字三个分隔符

TOP

先说清楚用来干啥的?

TOP

回复 7楼 的帖子

是用来设IP时,根据手动输入,来判断IP输入是否正确,只要判断IP格式是否正确就行,这代码同时可以判断子网掩码、网关、DNS

TOP

回复 8楼 的帖子

判断IP?
据我对IP的了解,一个合格的IP应当:
1、符合这个格式:000.000.000.000,三个数字一组,共四组。
2、小组之间使用点号分隔。
3、每组数字最大只能是255?因此封顶是:255.255.255.255。
4、但也有不是三个数字一组的,如:192.168.1.1。
因此,判断只能是:
四组数字;每组最大三位数255,最小一位数0;每组数使用点号分隔。
你的题目要求符合吗?

TOP

回复 4楼 的帖子

期待4楼的代码
技术问题请到论坛发帖求助!

TOP

  1. @echo off
  2. :start
  3. setlocal enabledelayedexpansion
  4. set /p ip= 请输入ip &cls
  5. set "s=[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"
  6. echo %ip%|findstr /be "%s%" >nul||set flag=a
  7. set n=%ip:.= %
  8. for %%a in (%n%) do (
  9.    set /a var=1%%a 2>nul
  10.    if !var! gtr 1255 set flag=a
  11. )
  12. if defined flag echo  输入错误&endlocal&goto start
  13. echo 正确ip %ip%
  14. pause
复制代码
1

评分人数

技术问题请到论坛发帖求助!

TOP

回复 10楼 的帖子

随风兄,我发现你那个代码屡试不爽,我又在你目前班门弄斧一下:
  1. @echo off
  2. set /p id= ID: &cls
  3. echo.%id%|findstr /be "[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]"||echo 输入错误
  4. pause
复制代码

TOP

回复 11楼 的帖子

晕,你动作真快啊!~

TOP

回复 12楼 的帖子

这样局限了只能输入3位数字,还是无法满足楼主要求,如: 1.2.3.4
技术问题请到论坛发帖求助!

TOP

回复 14楼 的帖子

呵呵,我只是给他个提示,我不想动手写啊,我写的都是“长篇大论!”,想学习你们“精悍短小”的代码!~

TOP

返回列表