Board logo

标题: [其他] 批处理拼音和五笔输入 [打印本页]

作者: batman    时间: 2009-10-13 21:05     标题: 批处理拼音和五笔输入

&&确实有段时间没在论坛出现过了,为大家带来一个无聊时写的一个小东东吧,
请将压缩包中的wbzk.txt与批解压在同一目录,输入编码时应最后以z字符结尾,
其中的五笔字库是从网上下载来的,自己稍做了下处理,肯定收录得不齐全,有
心的人再完善下吧,批也写得较仓促,要完善的地方很多,请大家先谅解了。

友情提示:最新版本的代码在6楼,字库在4楼下载,程序运行需要choice.exe的支持,本论坛有下载。

作者: zjhuzi    时间: 2009-10-14 08:13     标题: 回复 1楼 的帖子

问题反馈
[attach]1927[/attach]
作者: zjhuzi    时间: 2009-10-14 08:16     标题: 回复 2楼 的帖子

(注:本批运行需要choice.exe的支持,本论坛有下载)

哦,是我搞错了 抱歉!
作者: batman    时间: 2009-10-16 18:11     标题: 更新至拼音&五笔输入

更新提示:
    1、加入拼音字库增加了拼音输入法,并更新了五笔字库(加入了常见词组);
    2、加入了多选项输出及选择;
    4、加入了默认输出设置,当选项唯一直接输出,多选项时加入默认输出判断;
    5、加入了多选项大于95个时的倒序输出(便于选择常用选项);
    6、加入了输入时的回退删除功能;
    7、更新了报错提示。

下载:
http://pan.baidu.com/share/link?shareid=3895381237&uk=1124163200
作者: daxiang    时间: 2009-10-17 09:47

谢谢lz分享,下来试一下
作者: batman    时间: 2009-10-17 11:42     标题: 再次更新,贴出源码

更新提示:
    1、更新了回退删除,对输出的字现在也能回退删除;
    2、加入了输入法切换功能,可以随时切换输入法;
    3、因论坛处理不了tab键,请将代码中的tab字符替换为实际的tab键。
  1. @echo off&setlocal enabledelayedexpansion
  2. :::::::::::初始化变量:::::::::::
  3. title 拼音^&五笔输入- made by batman
  4. echo.&set /p=请选择输入法(五笔:w 拼音:p)<nul
  5. choice /n /c "wp"
  6. if "%errorlevel%" equ "1" (
  7.    set "file=wbzk.txt"&set "kk=五笔"
  8.    ) else (
  9.    set "file=pyzk.txt"&set "kk=拼音"
  10. )
  11. for /l %%a in (0,1,9) do set /a n+=1&set ".!n!=%%a"
  12. set "code=a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1"&set /a n=0
  13. for %%a in (%code%) do set /a n+=1&set "_!n!=%%a"
  14. set /a n=0
  15. :::::::::::初始化变量:::::::::::
  16. :::::::::::输入法切换及编码输入:::::::::::
  17. :begin
  18. title %kk%输入- made by batman
  19. cls&echo.&echo 输出:%var%&echo.&echo.
  20. set /p=%wrong1%请正确输入%kk%,"1"切换输入法,"0"回退删除,"z"确认结尾:%str%<nul
  21. choice /n /c "%code: =%"
  22. if %errorlevel% gtr 26 (
  23.    if %errorlevel% equ 28 (
  24.       if %file% equ wbzk.txt (
  25.          set "file=pyzk.txt"&set "kk=拼音"
  26.          ) else (
  27.          set "file=wbzk.txt"&set "kk=五笔"
  28.        )
  29.        ) else (
  30.        if defined str (
  31.          set "str=%str:~,-1%"
  32.          ) else (
  33.          if defined var set "var=%var:~,-1%"
  34.        )
  35.        set "wrong1="
  36.       )
  37.    goto begin
  38.    )
  39.    ) else (
  40.    if %errorlevel% lss 26 set "flag=a"
  41.    if not defined flag (
  42.      set "str=%str%!_%errorlevel%!"&goto begin
  43.      ) else (
  44.      if %errorlevel% lss 26 set "str=%str%!_%errorlevel%!"&goto begin
  45.    )
  46. )
  47. :::::::::::输入法切换及编码输入:::::::::::
  48. :::::::::::查找字库:::::::::::
  49. findstr /i "^%str%\>" %file%>nul 2>nul
  50. if %errorlevel% equ 0 (
  51.    echo.
  52.    for /f "tokens=2" %%a in ('findstr /i "^%str%\>" %file%') do set /a n+=1&set "#!n!=%%a"
  53.    echo.
  54.    ) else (
  55.    set "wrong1=%kk%输入错误,"&set "str="&set "flag="&goto begin
  56. )
  57. if %n% equ 1 set "var=%var%%#1%"&goto next
  58. if %n% gtr 95 (
  59.    set /a min=n,max=1,step=-1
  60.    ) else (
  61.    set /a min=1,max=n,step=1
  62. )
  63. :::::::::::查找字库:::::::::::
  64. :::::::::::选项输出及选择:::::::::::
  65. :lp
  66. cls&echo.&echo 输出:%var%&echo.&echo.
  67. set /p=%wrong1%请正确输入%kk%,,"1"切换输入法,"0"回退删除,"z"确认结尾:%str%<nul
  68. echo.&echo.
  69. for /l %%a in (%min%,%step%,%max%) do set /p=^(%%a^)tab!#%%a!tab<nul
  70. echo.&echo.
  71. set /p=%wrong2%请正确输入序号选择,以"z"确认结尾,输入"a"默认为序号^(1^)选项:%num%<nul
  72. choice /n /c "0123456789az"
  73. if %errorlevel% equ 11 set "var=%var%%#1%"&goto next
  74. if %errorlevel% neq 12 set "num=%num%!.%errorlevel%!"&goto lp
  75. if not defined #%num% set "wrong2=序号输入错误,"&set "num="&goto lp
  76. set "var=%var%!#%num%!"
  77. :::::::::::选项输出及选择:::::::::::
  78. :::::::::::清空变量再循环:::::::::::
  79. :next
  80. for %%a in (str num n flag wrong1 wrong2) do set "%%a="
  81. for /f "delims==" %%a in ('set #') do set "%%a="
  82. goto begin
  83. :::::::::::清空变量再循环:::::::::::
复制代码

作者: wwan    时间: 2009-10-17 21:45

写的好多啊 ,呵呵… 厉害 高手啊@




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