Board logo

标题: [原创]批处理在线查单词 [打印本页]

作者: 无奈何     时间: 2007-1-4 00:47    标题: [原创]批处理在线查单词

昨天写完的东西,忘发了。功能简单在线查单词,数据来自金山词霸。
需要 wget 或 curl 支持,如果需要朗读功能的话需要 mplayer 支持。

用法:dict [/F] word ...
/F  完全模式查询单词。
word 可指定多个单词。
支持单词朗读功能。

所需软件链接:
mplayer:http://www.mplayerhq.hu
wget :http://users.ugent.be/~bpuype/wget/
或 curl:http://curl.haxx.se/

  Quote:

  1. :::::::::::::::::::::::::::::::::::::::::::::::::
  2. :: dict.cmd -V0.1 -- 批处理在线查单词
  3. :: 无奈何@cn-dos.net - 2007-1-2
  4. :: 用法:dict [/F] word ...
  5. :: 支持文件: - mplayer.exe  wget.exe or curl.exe
  6. :::::::::::::::::::::::::::::::::::::::::::::::::
  7. @echo off
  8. setlocal ENABLEDELAYEDEXPANSION
  9. set mp3file="%TEMP%\dict.mp3"
  10. rem 依赖文件检查
  11. :mplay
  12. call mplayer >nul 2>nul
  13. if "%ERRORLEVEL%" == "1" set nomplay=1

  14. :wget
  15. wget.exe >nul 2>nul
  16. if not "%ERRORLEVEL%" == "9009" (
  17.         set "command1=wget -q -O - "
  18.         set "command2=wget -q -O %mp3file%"
  19.         goto star
  20. )

  21. :curl
  22. curl.exe >nul 2>nul
  23. if not "%ERRORLEVEL%" == "9009" (
  24.         set "command1=curl -s "
  25.         set "command2=curl -s -o %mp3file%"
  26.         goto star
  27. )
  28. echo.本脚本需要 wget 或 curl 的支持。
  29. goto :EOF

  30. :star
  31. set flag=0
  32. if "%~1" == "" goto help
  33. if "%~1" == "?" goto help
  34. if "%~1" == "/?" goto help
  35. if "%~1" == "/F" shift &goto full
  36. if "%~1" == "/f" shift &goto full


  37. :next
  38. if "%~1" == "" goto :EOF
  39. set "word=%~1"
  40. call :down
  41. shift
  42. goto :next

  43. :full
  44. if "%~1" == "" goto :EOF
  45. set mp3=
  46. del %mp3file% 2>nul
  47. set "word=%~1"
  48. call :down
  49. %command2% "%mp3%"
  50. echo.--------------------------------
  51. if "%mp3%" == "" echo.[F]查看详解  [Q/A]退出 &goto :Nselect
  52. echo.[R]朗读  [F]查看详解  [Q/A]退出
  53. :Nselect
  54. set select=
  55. set /p select=请选择:
  56. call :Parse
  57. if "%quit%" == "1" goto :EOF
  58. shift
  59. goto :full


  60. :Parse
  61. for %%s in (R r F f A a) do if "%%s" == "%select%" goto Switch%select%
  62. goto :EOF

  63. :SwitchR
  64. if "%nomplay%" == "1" echo.  播放影音需要 mplayer 支持。&goto :Nselect
  65. start /min %ComSpec% /c "mplayer %mp3file%>nul"
  66. goto :Nselect
  67. goto :EOF

  68. :SwitchF
  69. start http://www.iciba.com/search?s=%word%
  70. goto :Nselect
  71. goto :EOF

  72. :SwitchA
  73. set quit=1
  74. goto :EOF


  75. :down
  76. set url="http://dict.cn/ws.php?q=%word%"
  77. echo.
  78. echo.单词:%word%
  79. echo.释义:
  80. for /f "tokens=1,2,3 delims=<>" %%a in ('%command1% %url%') do (
  81.         if "%%a" == "audio" set "mp3=%%b"
  82.         if "%%b" == "Not Found" echo 无此单词^^! &goto :EOF
  83.         if "%%c" == "/def" echo %%b &goto :EOF
  84.         if "%%b" == "/def" echo %%a &set flag=0
  85.         if "!flag!" == "1" echo %%a       
  86.         if "%%a" == "def" echo %%b &set flag=1
  87. )
  88. goto :EOF

  89. :help
  90. echo.批处理在线查单词
  91. echo.
  92. echo.用法:dict [/F] word ...
  93. echo.
  94. echo    /F  完全模式查询单词。
  95. echo    word 可指定多个单词。
  96. goto :EOF
        无奈何发表于    2007-01-03  12:11

[ Last edited by 无奈何 on 2007-1-4 at 01:16 AM ]
作者: ccwan     时间: 2007-1-4 01:26
坐下沙发^_^
作者: redtek     时间: 2007-1-4 03:15
欣赏~~
内容越来越全面、越来越丰富吸引人了~:)))
作者: flamey     时间: 2007-1-4 03:55
一个字=====强!
作者: ksuday     时间: 2007-1-4 04:29
我不会用,惭愧
作者: dosmania     时间: 2007-1-4 05:35
不行吖,双击后一闪然后就退出了
我已经下载了wget了,存于WINDOWS吗,我也试了存于system32
结果还是一样
作者: ccwan     时间: 2007-1-4 05:47
发错了,汗一个!=_=|||

[ Last edited by ccwan on 2007-1-4 at 05:55 AM ]
作者: lxmxn     时间: 2007-1-4 05:53
  没有金山的词库,有的朋友可否发一个上来?
作者: vkill     时间: 2007-1-4 06:25
呵呵,以前简单的弄了下,没有去完善,佩服斑竹,要我弄的话是wget+sed
作者: vkill     时间: 2007-1-4 06:29
声音文件是.swf吗?
作者: 无奈何     时间: 2007-1-4 07:19
RE dosmania
干嘛要双击运行,这样你只能看到帮助并且一闪而过,在命令行下调用。

RE  lxmxn
不需要词库的,在线查。你说的是金山词霸的词典吗?

RE vkill
声音是 mp3 格式的。http://www.iciba.com/ 的是swf 的。
作者: vkill     时间: 2007-1-6 02:15
RE 无奈何 斑竹
我觉得读音还是 mplayer 来播放iciba上的好,呵呵,简单

@echo off
:start
set search=
set /p search=请输入要翻译的单词:
set search_x=%search:~0,1%
echo %search%读音:
mplayer http://www.iciba.com/resource/a/en/%search_x%/%search%.swf>nul
goto start
作者: xiaoshuq     时间: 2007-1-7 02:37    标题:

越来越有意思了,看来我要努力学习了阿
作者: jackyggt     时间: 2007-3-16 08:00
好东西啊
作者: xycoordinate     时间: 2007-3-17 05:52
佩服!
作者: zouzhxi     时间: 2007-3-17 05:56
用代理上网能用吗...呵呵...
作者: huzixuan     时间: 2007-3-17 06:31
如果我可以 知道 那几个程序依赖性 文件 如何下载
并且可以使用 这个批处理工具 的话,我就更开心了 - -
作者: ysc     时间: 2007-3-17 08:35
人才~~~~
作者: chengbiner     时间: 2007-3-17 11:25
以前看有人提议,没想怎么快你做出来哦!给你加分咯!
作者: SAtANly     时间: 2007-3-17 14:08
还不错!
就是连接上网的时候慢了点!当然,可能是我这里网络不行!
作者: plp626     时间: 2007-12-9 07:01
我下了cult.exe wget.exe,(与运行文件在同一目录下)
在命令提示符下运行了上面的代码,
当输入:
dict /f abandon时,却出现
'dict' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

请问这是怎么回事,我忙活了一晚上呀,高手请指教呀
作者: lxmxn     时间: 2007-12-9 08:18
把一楼的批处理保存为dict.bat文件,放在系统可执行路径下。