Batch file 如何在windows批处理文件中实现嵌套的do while循环?
这是我的尝试,但它不断给出错误-Batch file 如何在windows批处理文件中实现嵌套的do while循环?,batch-file,Batch File,这是我的尝试,但它不断给出错误- set /a "x = 1" echo %x% :while1 if %x% leq 3 ( set /a "y = 1" :while2 if %y% leq 4 ( echo %y% set /a "y = y + 1" goto :while2 )
set /a "x = 1"
echo %x%
:while1
if %x% leq 3 (
set /a "y = 1"
:while2
if %y% leq 4 (
echo %y%
set /a "y = y + 1"
goto :while2
)
echo %x%
set /a "x = x + 1"
goto :while1
)
错误-
G:\A>设置/A“x=1”
G:\A>echo 1
1.
该命令的语法不正确。存在多个问题 1-%y%无法按预期工作,因为它在执行之前,在分析括号块时被展开
if %x% leq 3 (
set /a "y = 1"
if %y% leq 4 (
...
扩展到
if 1 leq 3 (
set /a "y = 1"
if leq 4 (
...
你最好使用延迟扩展!y
2-语法错误是右括号前的“第一行标签”导致的。
允许在括号中使用标签,但它们应始终在双线中使用
3-转到跳转始终取消所有括号块
在你的情况下,这不是一个问题,但在大多数情况下,在一个区块中使用goto不是一个好主意
@echo off
setlocal enabledelayedexpansion
set /a "x = 1"
echo %x%
:while1
if %x% leq 3 (
set /a "y = 1"
:while2
:while2 This is the Second-Line-Label
if !y! leq 4 (
echo y=!y!
set /a "y = y + 1"
goto :while2
)
echo x=!x!
set /a "x = x + 1"
goto :while1
)