批处理之家's Archiver

lhjoanna 发表于 2008-12-4 02:32

批处理版区号、邮编查询器

查看全国各省、市地区邮编及区号,坛子里搜了一下,发现pusofalse和随风都写过类似工具。全当凑个热闹吧~~~
需要一个文本文件,字数限制就没写在代码里,以附件形式上传吧。[code]@echo off&setlocal enabledelayedexpansion
:begin
mode con cols=60 lines=25
cls
echo.
echo                     ╭────────╮
echo     ╭───────┤ 区号邮编查询器 ├───────╮
echo     │              ╰────────╯              │
echo     │                                                │
echo     │       本程序能可以查询全国各主要城市的区号和   │
echo     │                                                │
echo     │  邮编。提供三种查询方式:1、按区号查询;2、按   │
echo     │                                                │
echo     │  邮编查询;3、按省(直辖市)名查询;查询时输入相   │
echo     │                                                │
echo     │  应的代号即可(按q返回上一层)。                 │
echo     │                                                │
echo     │       附加一个文本文件"区号邮编.txt",资料来源  │
echo     │                                                │
echo     │  于网上。如发现错误,欢迎提出!                │
echo     │                                                │
echo     │                              code by lhjoanna  │
echo     │                                                │
echo     ╰────────────────────────╯
echo.
set input=
set /p input=请输入代号:
if "%input%" equ "1" goto section
if "%input%" equ "2" goto postalcode
if "%input%" equ "3" goto province
if "%input%" equ "" echo 输入有误,请重新输入&pause>nul&goto begin
if not "%input:~1,1%" equ "" echo 输入有误,请重新输入&pause>nul&goto begin
if not "%input%" gtr 0 echo 输入有误,请重新输入&pause>nul&goto begin
if not "%input%" lss 4 echo 输入有误,请重新输入&pause>nul&goto begin
:section
mode con cols=25 lines=15
cls
echo.
set /p sec=请输入区号:
if "%sec%" equ "q" goto begin
echo %sec%|findstr "^0[0-9]*$">nul||goto section
set num=0
echo.&echo      区号:%sec%
for /f "tokens=2-5" %%i in ('findstr "\<%sec%\>" 区号邮编.txt') do (
    set /a num+=1
    if !num! lss 10 set "num= !num!"
    echo      !num! %%l %%k
    if !num! equ 10 pause>nul&cls&echo.
)
if !num! equ 0 echo    未找到相应信息!&pause>nul&goto section
pause>nul
goto begin
:postalcode
mode con cols=25 lines=10
cls
set /p post=请输入邮编:
if "%post%" equ "q" goto begin
echo %post%|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9]$">nul||goto postalcode
set num=0
echo.&echo.
echo      邮编:%post%
for /f "tokens=2-5" %%i in ('findstr "\<%post%\>" 区号邮编.txt') do (
    set /a num+=1
    if !num! lss 10 set num=0!num!
    echo      !num! %%l %%k
)
if !num! equ 0 echo    未找到相应信息!&pause>nul&goto postalcode
pause>nul
goto begin
:province
mode con cols=50 lines=25
cls
echo.
set /p pro=请输入省(直辖市)名:
if "%pro%" equ "q" goto begin
echo %pro%|findstr "^[^0-9][^a-z]*$">nul||goto province
echo.&echo  省(直辖市)名:%pro%
set num=0
for /f "tokens=2-5" %%i in ('findstr "\<%pro%\>" 区号邮编.txt') do (
    set /a num+=1
    if !num! equ 1 echo  ID   省名     县市名     区号       邮编
    if !num! lss 10 (set "num=  !num!") else if !num! lss 100 (set "num= !num!")
    echo !num!   %%l      %%k      %%i       %%j
    set /a a=num%%20
    if !a! equ 0 pause>nul&cls&echo.&echo  ID   省名     县市名     区号       邮编
   
)
if !num! equ 0 echo.&echo    未找到相应信息!
pause>nul
goto begin[/code]链接: [url]https://pan.baidu.com/s/1prkIzH1lrI4tTRlbwkXpTQ[/url] 提取码: ccgf

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.