Number of tokens limit in a FOR command in a Windows batch script

后端 未结 6 2025
無奈伤痛
無奈伤痛 2020-12-04 00:24

I was trying to process a text file in a Windows batch script and I ran into something that looks like a limitation to 31 tokens in a FOR loop. I isolated the issue in the c

6条回答
  •  [愿得一人]
    2020-12-04 00:47

    There is more than one way to loop through the DATA array:

    @ECHO OFF
    setlocal ENABLEDELAYEDEXPANSION
    SET DATA=01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
    
    for /l %%a in (0,3,150) do @echo %%a data: !data:~%%a,2!
    

    This is possible only because of the two character variables in the %DATA% array. As you will see, the limit is now 99 characters, rather than 31. When you get to the 100th and beyond, the number is truncated.

    Rob

提交回复
热议问题