Board logo

标题: [其他] 批处理版区号、邮编查询器 [打印本页]

作者: lhjoanna    时间: 2008-12-4 02:32     标题: 批处理版区号、邮编查询器

查看全国各省、市地区邮编及区号,坛子里搜了一下,发现pusofalse和随风都写过类似工具。全当凑个热闹吧~~~
需要一个文本文件,字数限制就没写在代码里,以附件形式上传吧。
  1. @echo off&setlocal enabledelayedexpansion
  2. :begin
  3. mode con cols=60 lines=25
  4. cls
  5. echo.
  6. echo                     ╭────────╮
  7. echo     ╭───────┤ 区号邮编查询器 ├───────╮
  8. echo     │              ╰────────╯              │
  9. echo     │                                                │
  10. echo     │       本程序能可以查询全国各主要城市的区号和   │
  11. echo     │                                                │
  12. echo     │  邮编。提供三种查询方式:1、按区号查询;2、按   │
  13. echo     │                                                │
  14. echo     │  邮编查询;3、按省(直辖市)名查询;查询时输入相   │
  15. echo     │                                                │
  16. echo     │  应的代号即可(按q返回上一层)。                 │
  17. echo     │                                                │
  18. echo     │       附加一个文本文件"区号邮编.txt",资料来源  │
  19. echo     │                                                │
  20. echo     │  于网上。如发现错误,欢迎提出!                │
  21. echo     │                                                │
  22. echo     │                              code by lhjoanna  │
  23. echo     │                                                │
  24. echo     ╰────────────────────────╯
  25. echo.
  26. set input=
  27. set /p input=请输入代号:
  28. if "%input%" equ "1" goto section
  29. if "%input%" equ "2" goto postalcode
  30. if "%input%" equ "3" goto province
  31. if "%input%" equ "" echo 输入有误,请重新输入&pause>nul&goto begin
  32. if not "%input:~1,1%" equ "" echo 输入有误,请重新输入&pause>nul&goto begin
  33. if not "%input%" gtr 0 echo 输入有误,请重新输入&pause>nul&goto begin
  34. if not "%input%" lss 4 echo 输入有误,请重新输入&pause>nul&goto begin
  35. :section
  36. mode con cols=25 lines=15
  37. cls
  38. echo.
  39. set /p sec=请输入区号:
  40. if "%sec%" equ "q" goto begin
  41. echo %sec%|findstr "^0[0-9]*$">nul||goto section
  42. set num=0
  43. echo.&echo      区号:%sec%
  44. for /f "tokens=2-5" %%i in ('findstr "\<%sec%\>" 区号邮编.txt') do (
  45.     set /a num+=1
  46.     if !num! lss 10 set "num= !num!"
  47.     echo      !num! %%l %%k
  48.     if !num! equ 10 pause>nul&cls&echo.
  49. )
  50. if !num! equ 0 echo    未找到相应信息!&pause>nul&goto section
  51. pause>nul
  52. goto begin
  53. :postalcode
  54. mode con cols=25 lines=10
  55. cls
  56. set /p post=请输入邮编:
  57. if "%post%" equ "q" goto begin
  58. echo %post%|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9]$">nul||goto postalcode
  59. set num=0
  60. echo.&echo.
  61. echo      邮编:%post%
  62. for /f "tokens=2-5" %%i in ('findstr "\<%post%\>" 区号邮编.txt') do (
  63.     set /a num+=1
  64.     if !num! lss 10 set num=0!num!
  65.     echo      !num! %%l %%k
  66. )
  67. if !num! equ 0 echo    未找到相应信息!&pause>nul&goto postalcode
  68. pause>nul
  69. goto begin
  70. :province
  71. mode con cols=50 lines=25
  72. cls
  73. echo.
  74. set /p pro=请输入省(直辖市)名:
  75. if "%pro%" equ "q" goto begin
  76. echo %pro%|findstr "^[^0-9][^a-z]*$">nul||goto province
  77. echo.&echo  省(直辖市)名:%pro%
  78. set num=0
  79. for /f "tokens=2-5" %%i in ('findstr "\<%pro%\>" 区号邮编.txt') do (
  80.     set /a num+=1
  81.     if !num! equ 1 echo  ID   省名     县市名     区号       邮编
  82.     if !num! lss 10 (set "num=  !num!") else if !num! lss 100 (set "num= !num!")
  83.     echo !num!   %%l      %%k      %%i       %%j
  84.     set /a a=num%%20
  85.     if !a! equ 0 pause>nul&cls&echo.&echo  ID   省名     县市名     区号       邮编
  86.    
  87. )
  88. if !num! equ 0 echo.&echo    未找到相应信息!
  89. pause>nul
  90. goto begin
复制代码
链接: https://pan.baidu.com/s/1prkIzH1lrI4tTRlbwkXpTQ 提取码: ccgf




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2