中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-17 18:29
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]批处理在线查单词 查看 5,127 回复 21
楼 主 [原创]批处理在线查单词 发表于 2007-01-04 00:47 ·  中国 北京 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
昨天写完的东西,忘发了。功能简单在线查单词,数据来自金山词霸。
需要 wget 或 curl 支持,如果需要朗读功能的话需要 mplayer 支持。

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

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



  1. :::::::::::::::::::::::::::::::::::::::::::::::::
  2. :: dict.cmd -V0.1 -- 批处理在线查单词
  3. :: 无奈何@cn-dos.net - 2007-1-2
  4. :: 用法:dict 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.查看详解 退出 &goto :Nselect
  52. echo.朗读 查看详解 退出
  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 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 ]
本帖最近评分记录 (共 6 条) 点击查看详情
评分人分数时间
ccwan +15 2007-01-04 01:25
redtek +11 2007-01-04 03:14
lxmxn +8 2007-01-04 05:55
huzixuan +4 2007-03-17 06:30
0401 +4 2007-03-17 09:26
chengbiner +1 2007-03-17 11:24
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2 发表于 2007-01-04 01:26 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
坐下沙发^_^
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
3 发表于 2007-01-04 03:15 ·  中国 北京 朝阳区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
欣赏~~
内容越来越全面、越来越丰富吸引人了~:)))
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
4 发表于 2007-01-04 03:55 ·  中国 广东 肇庆 电信
初级用户
★★
积分 152
发帖 74
注册 2005-12-01 23:06
UID 46314
状态 离线
一个字=====强!
5 发表于 2007-01-04 04:29 ·  中国 浙江 宁波 电信
初级用户
积分 38
发帖 19
注册 2006-10-22 23:11
UID 67763
性别 男
状态 离线
我不会用,惭愧
6 发表于 2007-01-04 05:35 ·  中国 广东 广州 白云区 电信
初级用户
★★
积分 172
发帖 54
注册 2007-01-02 10:38
UID 75260
性别 男
状态 离线
不行吖,双击后一闪然后就退出了
我已经下载了wget了,存于WINDOWS吗,我也试了存于system32
结果还是一样
7 发表于 2007-01-04 05:47 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
发错了,汗一个!=_=|||

[ Last edited by ccwan on 2007-1-4 at 05:55 AM ]
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
8 发表于 2007-01-04 05:53 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
  没有金山的词库,有的朋友可否发一个上来?
9 发表于 2007-01-04 06:25 ·  中国 甘肃 兰州 七里河区 电信_甘肃龙源风力发电有限公司
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
呵呵,以前简单的弄了下,没有去完善,佩服斑竹,要我弄的话是wget+sed
10 发表于 2007-01-04 06:29 ·  中国 甘肃 兰州 七里河区 电信_甘肃龙源风力发电有限公司
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
声音文件是.swf吗?
11 发表于 2007-01-04 07:19 ·  中国 北京 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
RE dosmania
干嘛要双击运行,这样你只能看到帮助并且一闪而过,在命令行下调用。

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

RE vkill
声音是 mp3 格式的。http://www.iciba.com/ 的是swf 的。
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

12 发表于 2007-01-06 02:15 ·  中国 甘肃 甘南藏族自治州 合作市 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
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
13 发表于 2007-01-07 02:37 ·  中国 山东 济南 电信
初级用户
积分 97
发帖 30
注册 2006-12-30 10:54
UID 75006
性别 男
状态 离线
越来越有意思了,看来我要努力学习了阿
14 发表于 2007-03-16 08:00 ·  中国 湖北 武汉 江夏区 电信
初级用户
积分 76
发帖 38
注册 2007-03-13 02:54
UID 81544
性别 男
状态 离线
好东西啊
15 发表于 2007-03-17 05:52 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
UID 79596
性别 男
来自 安徽
状态 离线
佩服!
论坛跳转: