[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [已解决]批处理for命令的tokens怎样才可以有52个变量?

高位大哥大姐高手们帮忙看看以下代码,for /f "tokens="代码不是可以有52个变量吗?我的怎么只有31个啊?怎样才可以有52个啊?谢谢了先!
  1. @echo off
  2. 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"
  3. set /a u=0&for %%a in (%var%) do set /a u+=1&set /a n=1
  4. :l
  5. for /f "tokens=%n% delims=," %%i in ("%var%") do set /a n+=1&echo %n%:%%i&if %n% Lss %u% goto L
  6. echo.&echo ok&pause>nul
复制代码
天行健  君子以自强不息

一个for 的令牌是最多只有31个的,31以上用两个for吧:


  1. @echo off
  2. 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"
  3. set /a u=0&for %%a in (%var%) do set /a u+=1&set /a n=1
  4. :l
  5. if %n% geq 31 set/a m=n-30
  6. if %n% lss 31 (
  7.         for /f "tokens=%n% delims=," %%i in ("%var%") do set /a n+=1&echo %n%:%%i&if %n% Lss %u% goto L
  8. ) else (
  9.         for /f "tokens=30* delims=," %%i in ("%var%") do (
  10.                 for /f "tokens=%m% delims=," %%k in ("%%j") do set /a n+=1&echo %n%:%%k&if %n% Lss %u% goto L
  11.         )
  12. )        
  13. echo.&echo ok&pause>nul
复制代码

TOP

返回列表