一个for 的令牌是最多只有31个的,31以上用两个for吧:
- @echo off
- set "var=02,15,20,33,56,01,07,54,89,66,23,25,27,28,29,55,56,57,05,59,06,78,74,66,08,28,09,30,52,14,15,16,02,10,20,30,40,50,60,70,80,90,100,08,04,06,15,16,13,05,09"
- set /a u=0&for %%a in (%var%) do set /a u+=1&set /a n=1
- :l
- if %n% geq 31 set/a m=n-30
- if %n% lss 31 (
- for /f "tokens=%n% delims=," %%i in ("%var%") do set /a n+=1&echo %n%:%%i&if %n% Lss %u% goto L
- ) else (
- for /f "tokens=30* delims=," %%i in ("%var%") do (
- for /f "tokens=%m% delims=," %%k in ("%%j") do set /a n+=1&echo %n%:%%k&if %n% Lss %u% goto L
- )
- )
-
- echo.&echo ok&pause>nul
复制代码
|