Board logo

标题: [系统相关] [已解决]批处理怎样实现整点报时? [打印本页]

作者: l8532001    时间: 2011-7-7 23:01     标题: [已解决]批处理怎样实现整点报时?

本帖最后由 l8532001 于 2011-7-8 11:55 编辑

网上找了段代码,可以语音报时,放进任务管理中,能整点报时,但是有点小缺陷,就是在整点报时时候,语音说成:“现在是北京时间x点0分”。
感觉很别扭,看看能不能搞一个判断,如果是整点时候,把语音改成:“现在是北京时间x点整”。 我搞了半天也没搞好,还是要求助各位童鞋帮忙!!谢谢!
代码如下:
  1. @echo off
  2. MODE con: COLS=14 LINES=1
  3. for /f "tokens=1,2,3 delims=:" %%i in ('echo %time%') do set tvar=%%i点%%j分
  4. echo Set oVoice = CreateObject("SAPI.SpVoice") >%temp%\read.vbs
  5. echo with oVoice >>%temp%\read.vbs
  6. echo set .voice = .GetVoices.Item^(0^) >>%temp%\read.vbs
  7. echo .Volume = 100 >>%temp%\read.vbs
  8. echo .rate = 0 >>%temp%\read.vbs
  9. echo .speak(Wscript.Arguments(0)) >>%temp%\read.vbs
  10. echo end with >>%temp%\read.vbs
  11. %temp%\read.vbs "现在是北京时间%tvar%!"
  12. @del %temp%\read.vbs
  13. exit
复制代码

作者: mxxcgzxxx    时间: 2011-7-7 23:05

请将代码放入
^[^code]  ^ [^/code]内
如果不会就在输入框上方的<>工具可以框代码
作者: l8532001    时间: 2011-7-7 23:54

可算是学会了怎么框代码了, 找半天,太笨了,呵呵。。
作者: ArdentMan    时间: 2011-7-8 09:01

for /f "tokens=1,2,3 delims=:" %%i in ('echo %time%') do set tvar=%%i点%%j分
改为
for /f "tokens=1,2 delims=:" %%i in ("%time%") do (
  set "tvar=%%i点%%j分"
  if "%%j" equ "00" set "tvar=%%i点整"
)
作者: l8532001    时间: 2011-7-8 11:55

四楼的兄弟解决了这个问题,谢谢!!
作者: a87750530    时间: 2011-7-8 16:16

5# l8532001
为什么我的报时是E文发音的?能不能把完整的代码弄出来看看?
作者: l8532001    时间: 2011-7-8 21:40

已经完整发出来了,你没有装中文语音库吧?
作者: yadngah1984    时间: 2012-9-9 22:19

.voice = .GetVoices.Item^(0^)
如何在这里指定多人语音库中的某个?谢谢
作者: yadngah1984    时间: 2012-9-9 22:20

.voice = .GetVoices.Item^(0^)
如何在这里指定已安装的多个语音库中的其中一个?谢谢




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