批处理子程序 什么意思 in (1,1,0) 为什么最后一步是0

@echo off
setlocal enabledelayedexpansion
set str=床前明月光 疑是地上霜. 举头望明月, 低头思故乡.
::定义字符串str
for %%i in (%str%) do (

set char=%%i
echo.
echo.
for /l %%j in (0,1,5) do (
set /p=!char:~%%j,1!<nul

ping -n 2 127.0.0.1>nul

)
call :hero
)
pause>nul
exit
:hero
for /l %%k in (1,1,0) do (
ping /n 0 127.0.0.1>nul
set /p a=<nul
set /p a= <nul
set /p a=<nul
ping /n 0 127.0.0.1>nul
set /p a=%1<nul
)
::文字闪动
goto :eof

第1个回答  2012-10-13
(1,1,0) = (start, step,end) ,从1开始,每次走1步,到0。假设是(3,1,0),出来的序列就是3,2,1,0。

批处理中的标号可以做成子程序的形式,通过call来调用(可以传递参数)。例如上述程序中的:hero就相当于一个子程序。
第2个回答  2012-10-13
那段是错误的,而且是多余的,这样就能运行:

@echo off
setlocal enabledelayedexpansion
set str=床前明月光 疑是地上霜. 举头望明月, 低头思故乡.
::定义字符串str
for %%i in (%str%) do (
set char=%%i
echo.
echo.
for /l %%j in (0,1,5) do (
set /p=!char:~%%j,1!<nul
ping -n 2 127.0.0.1>nul
)
)
pause>nul
exit追问

in (1,1,0) 却是错误 后面的子程序 为了实现文字闪烁

本回答被提问者采纳
第3个回答  2012-10-12
没写过这个,不过可以理解成程序里的函数吧,写好了以后用的时候调用。
相似回答
大家正在搜