在goto的循环中只要不被“()”,或“&”同行,可以不用延迟变量:call set temp=%%a:~%count%,1%%
简化之:
@echo off
color 0e
mode con lines=20 cols=60
set count=0
set a=今天又是健康、快乐、积极、进步的一天,抬起头呀嘛哦嘿,向前走呀嘛哦嘿…… ——呼吸新世界
:loop
call set temp=%%a:~%count%,1%%
set /p=%temp%<nul&call :sound "%temp%"&set /a count+=1
if not "%temp%"=="" goto loop
pause>nul
exit
:sound
mshta vbscript:createobject("sapi.spvoice").speak(%1)(window.close)
goto :eof
Last edited by zh159 on 2007-4-26 at 06:38 PM ]