本帖最后由 pcl_test 于 2017-3-18 01:07 编辑
写了个判断输入信息是否属于IP地址的bat
思路比较简单,就是先判断格式,是否有3个“.”,然后判断每个段的值是否满足0-255这个数值的范围。
新司机上路,求老司机们多多关照,看看能否优化代码或者给点新的代码思路。- @echo off&setlocal enabledelayedexpansion
- set /p string=请输入字符串:
- set /a d=0
- set /a a=0
-
- if "%string%" equ "" (
- echo 输入为空
- goto :stop
- )
-
- if "%string%" neq "" goto :loop
- :loop
- if "!string:~%a%,1!" equ "." set /a d+=1
- if "!string:~%a%,1!" neq "" (
- set /a a+=1
- goto :loop)
-
- if %d%==3 (
- for /f "tokens=1-4 delims=." %%a in ("%string%") do (
- if %%a lss 0 goto :reason
- if %%a gtr 255 goto :reason
- if %%b lss 0 goto :reason
- if %%b gtr 255 goto :reason
- if %%c lss 0 goto :reason
- if %%c gtr 255 goto :reason
- if %%d lss 0 goto :reason
- if %%d gtr 255 goto :reason
- echo IP地址为:%string%
- goto :stop
- )
-
- ) else (
- echo 不属于IP地址格式
- goto :stop
- )
-
- :reason
- echo 输入信息中存在不为0-255的整数
- goto :stop
-
- :stop
- pause
复制代码
|