关于批处理文件的一个错误

来源:百度知道 编辑:UC知道 时间:2024/05/18 02:46:44
请问下面这段批处理命令有什么问题?
set /a me=1
for /l %%i in (1,1,10) do(
:redo
echo 第%%i次外循环,第%me%次内循环。
set /a me=!me!+1
if !me! leq 3 goto redo
echo 第%%i次外循环结束


保存为b.bat
我想要的结果是十次外循环,每次外循环里面有三次内循环(内循环我不要用for)。但是现在外循环进行一次就不能继续了。
用cmd \v:on 运行结果如下:

第1次外循环,第1次内循环。
第%i次外循环,第2次内循环。
第%i次外循环,第3次内循环。
第%i次外循环结束

请问为什么?如何改进?

@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,10) do (
set var=%%i
set me=1
call :redo
)
:redo
cls
echo 第!var!次外循环,第!me!次内循环。
pause
set /a me+=1
if !me! leq 3 goto redo
cls
echo 第!var!次外循环结束
pause
if !var! equ 10 (
if !me! equ 4 exit
)


:redo
放到代码的最前面

原来是进入死循环了。