@echo off
set /a n=99
echo before call test3
echo n=%n%
set ret=
call :test3 ret
echo after call test3
echo n=%n%
echo show array:
echo %ret.Array[0]%
echo %ret.Array[1]%
echo %ret.Array[2]%
echo %ret.Array[3]%
ECHO Press any key to close the windows...
pause>NUL
goto :eof
:test3
setlocal
set /a n=0
:Loop-Start
if %n% GEQ 3 goto :Loop-End
endlocal
set %~1.Array[%n%]=V%n%
setlocal
set /a n=n+1
goto :Loop-Start
:Loop-End
endlocal
goto :eof
嗨,
我已经编写了一个名为test3的函数,其局部变量名为n,而test3从调用者那里获得了对名为ret的变量的引用。
如代码中所示,我希望test3使得一个数组具有三个元素,调用程序中名为ret的变量将保存该数组。
但是在调用方打印数组时,发现数组中没有三个元素。
谁可以提供帮助?谢谢
答案 0 :(得分:0)
已解决。以下是子例程test3的工作代码:
:test3
setlocal EnableDelayedExpansion
set /a n=0
for /l %%i in (0,1,3) do (
set s1=V!n!
if defined _ret (
set _ret=!_ret! ^&
)
set _ret=!_ret!set %~1.Array[!n!]=V!n!
set /a n=n+1
)
(
endlocal
%_ret%
)
goto :eof
谢谢