本帖最后由 zz100001 于 2017-2-9 15:47 编辑
诉我直言,很多人已经不喜欢用批处理了
字符处理不好也不方便
于是给你的一般都是ps或者“混编批处理”(其实就是拿批处理启动其他脚本 )
电话号码如何识别你也没有明确的标准
这里就按11位数字来取好了- @echo off
-
- set fn=a.txt
-
- setlocal enabledelayedexpansion
- set PhoneNumbers=
- set pn=
- set /a nc=0
- call :PhoneNumberReader "%fn%"
- echo 文件中包含的全部手机号:
- echo %PhoneNumbers%
- pause
- goto :EOF
-
-
- :PhoneNumberReader
- echo %~s1
- for /f "delims=" %%a in (%~s1) do (
- call :CharReader %%a
- )
- call :CheckPhoneNumber
- goto :EOF
-
-
- :CharReader
- set l=%*
- :CheckNumber
- set /a n=!l:~,1! 1>nul 2>&1
- if "!n!" equ "!l:~,1!" (
- set pn=!pn!!n!
- set /a nc+=1 1>nul 2>&1
- ) else (
- call :CheckPhoneNumber *
- )
- set l=!l:~1!
- if "!l!" neq "" goto :CheckNumber
- goto :EOF
-
-
- :CheckPhoneNumber
- if !nc! equ 11 (
- for %%a in (134 135 136 137 138 139 150 151 152 158 159 157 182 187 188 147 130 131 132 155 156 185 186 133 153 180 189) do (
- if "%%a" equ "!pn:~,3!" (
- echo 找到一个手机号:!pn!
- set PhoneNumbers=!PhoneNumbers!!pn!%1
- goto :CheckPhoneNumberOver
- )
- )
- )
- :CheckPhoneNumberOver
- set pn=
- set /a nc=0 1>nul 2>&1
- goto :EOF
复制代码
|