这样就没有问题了,LZ字符截取的方法好奇怪,让人看不懂
@echo off
:begin
set n=0
set /p str=请输入不含^&^<^>^|的字符串:
if "%str%"=="" goto begin
echo.&echo 逐字显示开始...&ping /n 2 127.1>nul
cls&echo.
:lp
set /a n+=1
call,set var="%%str:~0,%n%%%"
set /p=%var%<nul&ping /n 127.1>nul
for /l %%i in (1,1,100) do set /p=<nul
if not %var%=="%str%" (
goto lp
) else (
pause&cls&goto begin
)