Usted ha entendido mal las opciones.
tokens=1
significa que solo desea el primer token en cada línea. Quieres todos los tokens en la línea.
eol=,
significa que desea interpretar una coma como el comienzo de un fin de comentario de línea. Desea utilizar delims=,
para indicar que la coma es el delimitador (en lugar del valor predeterminado de espacios en blanco).
FOR/F es principalmente para operar en líneas en un archivo. No estás haciendo eso. Usted está operativo en una sola cadena, por lo que la respuesta de Rubens está más cerca de lo que quiere:
@ECHO OFF
SET test=1,2,3,4
FOR /D %%F IN (%test%) DO (
ECHO .
ECHO %%F
)
Sin embargo, en teoría, debería ser capaz de decir algo como:
FOR /F "usebackq delims=, tokens=1-4" %%f IN ('1^,2^,3^,4') DO (
ECHO .
ECHO %%f
ECHO .
ECHO %%g
ECHO .
ECHO %%h
ECHO .
ECHO %%i
)
Estos trabajos también, pero probablemente no se escale de la manera que desee. Tenga en cuenta que tiene que escapar de la coma en la cadena usando el carácter ^, y debe especificar los tokens que desea y luego usar las variables siguientes% g,% h y% i para obtenerlos.
"Has malentendido las opciones": esto no me sorprende. La documentación que encontré no era tan buena. – jcollum
Pero si le digo que la coma es el final de la línea, ¿no solo quiero el primer token en cada línea? Traté de usar la opción delims también y todavía no obtuve lo que quería. Oh bien. – jcollum
Sí, apesta. PARA /? tiene que leerse con mucho cuidado. Esta es otra fuente: http://technet.microsoft.com/en-us/library/bb490909.aspx –