Anzahl der Token-limit in einem FOR-Befehl in einem Windows-batch-Skript

War ich zu verarbeiten versucht eine text-Datei in einem Windows-batch-script, und ich lief in etwas, das aussieht wie eine Beschränkung auf 31 Token in einer FOR-Schleife. Ich isolierte das Problem in den folgenden code:

@ECHO OFF
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

FOR /F "tokens=31* delims= " %%i IN ("%DATA%") DO (
    ECHO [%%i]
    ECHO [%%j]
)
ECHO.
FOR /F "tokens=32* delims= " %%i IN ("%DATA%") DO (
    ECHO [%%i]
    ECHO [%%j]
)

Ausgabe:

[31]
[32 33 34 35]

[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]
[%j]

und ich war davon ausgegangen, dass:

[31]
[32 33 34 35]

[32]
[33 34 35]

In der Hoffnung, dass ich nicht etwas falsch zu machen, ich konnte Sie nicht finden, diese Einschränkung dokumentiert in der Hilfe zum FOR-Befehl. Ich bin mit Windows XP. Kennen Sie eine Abhilfe für dieses ist, abgesehen von hacken off Teile der Daten?

Danke.

Ich lief einfach in dieser Einschränkung als gut. Ich war nur dabei for /F "tokens=32" %%a in ([big list of tokens])...., also ich wollte NUR die 32nd token in die variable %%a, und nicht denken, ich würde die Beule in jede Beschränkung immer nur auf eine bestimmte Zeichen aus einer Liste auswählen. Boy war ich falsch! Toller post. 🙂

InformationsquelleAutor Paul | 2009-06-11

Schreibe einen Kommentar