Batch file 批处理文件-如果条件变成无限循环

Batch file 批处理文件-如果条件变成无限循环,batch-file,Batch File,我有以下条件 if %dayNo% LSS 6 ( set /a dayNo=%dayNo%+1 goto reStart ) *next code* 我希望,如果dayNo已经大于6,它将继续执行下一个代码,但它会返回到重新启动(这反过来会返回到这个if条件,即使dayNo已经大于6),从而创建一个无限循环 为什么会发生这种情况?我应该如何解决 编辑2:(复制错误的代码) 我编写了一个代码来复制错误。假设桌面上有一个“test”文件夹,其中包含子文件夹“day5”和

我有以下条件

if %dayNo% LSS 6 (
    set /a dayNo=%dayNo%+1 
    goto reStart
    )
*next code*
我希望,如果dayNo已经大于6,它将继续执行下一个代码,但它会返回到重新启动(这反过来会返回到这个if条件,即使dayNo已经大于6),从而创建一个无限循环

为什么会发生这种情况?我应该如何解决

编辑2:(复制错误的代码)

我编写了一个代码来复制错误。假设桌面上有一个“test”文件夹,其中包含子文件夹“day5”和“day6”。我在第5天添加了一个文本文件,因此代码应该一直正确运行到第6天,这将继续执行if语句中的goto语法,并将循环代码直到无限。我使用暂停来检查代码,因此可以随意删除其中的REM

REM @echo off
REM setlocal enableDelayedExpansion

set server= test
set /a dayNo=5

:reStart

set day=day%dayNo%
echo %day%

cd %USERPROFILE%\Desktop\
REM pause

    if not exist "%USERPROFILE%\Desktop\%server%\%day%\*.txt" then ( goto iterate )
    REM pause
    if exist "\tool\%server%\%day%" then (
    echo next code
    REM pause ) 

:iterate

if %dayNo% LSS 6 then (
    set /a dayNo=%dayNo%+1 
    REM pause
    goto reStart )

    echo This is the desired behavior and the code works!

这段代码中有几个小错误。 我将在下面列出它们。在此之前,@Mofi告诉我们(见他的评论),通过运行IF/?在命令提示符中

  • 我删除了“=”登录“服务器=测试”后的多余空间
  • 删除了IF语句中的“then”,因为这种用法是错误的
  • 添加标签“:iterate”以完成代码
检查修改后的代码

REM Following changes are done
REM removed an extra space before test "server= test"
REM removed "then" from IF.
REM proper line align done with ()
@echo off
REM setlocal enableDelayedExpansion

set server=test
set /a dayNo=5

:reStart

set day=day%dayNo%
echo %day%

cd "%USERPROFILE%\Desktop\"
REM pause

    if not exist "%USERPROFILE%\Desktop\%server%\%day%\*.txt" ( goto iterate )
:iterate
    REM pause
    if exist "\tool\%server%\%day%" (
    echo next code
    REM pause 
    )


if %dayNo% LSS 6 (
    set /a dayNo=%dayNo%+1 
     pause
    goto reStart )

    echo This is the desired behavior and the code works!

查看。向我们展示更多的代码。将
Echo“%dayno%”
语句直接放在
if
行之前,并报告结果。请使用
edit
功能修改您的帖子以包含此数据。@Magoo编辑了file@Mofi我试过你的建议,但仍在重复。我还尝试将所有%dayNo%更改为!天哪!并启用延迟扩展,但循环continues@Mofi很抱歉。我更改了术语,并添加了一段代码来复制错误。