如何修复这个斐波那契批处理列表?

How to fix this fibonacci batch lister?

我研究了 操作数和运算符set /asetlocal EnableDelayedExpansion 从这个网站但不知何故我的代码最终告诉 我的操作数丢失了。

@echo off
cls
setlocal EnableDelayedExpansion
color 0a
title Fibonacci Lister
:Fibonacci
cls
set /a n1=1
echo %n1%
set /a n2=1
echo %n2%
set /a j=3
:loopfunction
set /a n%j%=!n%j-1%!+!n%j-2%!
echo !n%j%!
set /a j=%j%+1
goto :loopfunction

所以我想知道这里的问题是什么。它可能在第 14 行 代码复杂难懂

在第 #14 行,您使用了名为 %j-1%%j-2% 的变量,但它们未声明。

更新脚本:

@echo off
    setlocal EnableDelayedExpansion
    color 0a
    title Fibonacci Lister
:Fibonacci
    set /a n1=1
    echo %n1%
    set /a n2=1
    echo %n2%
    set /a j=3
:loopfunction
    set /a j1=j-1&set /a j2=j-2
    set /a n%j%=!n%j1%!+!n%j2%!
    if "!n%j%!"=="1836311903" goto :EOF
    echo !n%j%!
    set /a j=j+1
goto :loopfunction
@echo off
    setlocal enableextensions disabledelayedexpansion
    set n1=0
    set n2=1
:loop
    echo %n2%
    set /a "n2=n1+n2" & set "n1=%n2%"
    if %n2% gtr 0 goto loop