代码如下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set tmp="30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1"
set tmp1="10 9 8 7 6 5 4 3 2 1"
call:fun_arr %tmp% array len
for /l %%i in (1,1,%len%) do (
echo array[%%i]=!array[%%i]!
)
echo --
call:fun_arr %tmp1% array len
for /l %%i in (1,1,%len%) do (
echo array[%%i]=!array[%%i]!
)
pause
goto:eof
:: ///
:fun_arr
rem 用法:call:fun_arr %tmp% array len
rem in: %tmp% - 空格分隔的数据
rem out: array - 数组名
rem len - 数组长度
set tmpstr=%1
set tmpstr=%tmpstr:"=%
set "arr=%2"
rem 清空数组
set /a n=0
:fun_arrCls_loop
set /a n+=1
if "!%arr%[%n%]!" equ "" (goto:fun_arr_continue)
set "%arr%[!n!]="
goto:fun_arrCls_loop
rem 数组赋值
:fun_arr_continue
set /a n=0
for %%j in (%tmpstr%) do (
set /a n+=1
set %arr%[!n!]=%%j
)
set %3=%n%
goto:eof