5 votos

Salto de línea en el archivo por lotes

Tengo un simple archivo por lotes ( forbat.bat ), con el siguiente contenido:

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO @echo Date paid %%G

Cuando ejecuto este archivo por lotes, puedo obtener el resultado.

Ahora, quiero dividir las líneas en varios renglones, para que sean más fáciles de leer. Esto es lo que hice:

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") 
 DO 
 @echo Date paid %%G 

Esta vez, recibí un error "La sintaxis del comando es incorrecta".

Parece que debo haber omitido algunos puntos y comas y barras al introducir los saltos de línea. ¿Cómo hacer que el código anterior funcione en un archivo por lotes de Windows?

6voto

qwerty Puntos 58

Como dijo Dennis, puedes usar el caret, pero no debe tener espacios al principio de las líneas siguientes:

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") ^ 
DO ^ 
echo Date paid %%G

De lo contrario, no funciona. Sin embargo, si está dispuesto a dejar el DO en la línea original, puede utilizar paréntesis para delimitar un bloque

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO (
   @echo Date paid %%G
)

2voto

jason saldo Puntos 5036

Necesitas un quilate " ^ " para un carácter de continuación de línea al final de cada línea donde se dividen los comandos.

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") ^
DO ^
echo Date paid %%G

0 votos

Parece que no funciona: Tengo un DO ^ cosa impresa y eso fue todo.

0 votos

No le gusta la sangría ni el signo @ aparentemente.

1voto

Avi Puntos 14468

Esta es la sintaxis correcta, que funciona en mi máquina Windows XP:

FOR /F "tokens=4 delims=," %%G IN ("deposit,$4500,123.4,12-AUG-09") DO (  
@echo Date paid %%G 
@echo hiforbat ) 

Este es el resultado:

Date paid 12-AUG-09
hi

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: