Quebra de linha no arquivo de lote

4

Eu tenho um arquivo de lote simples ( forbat.bat ), com o seguinte conteúdo:

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

Quando executo esse arquivo em lote, posso obter o resultado.

Agora, quero dividir as linhas em algumas linhas, para facilitar a leitura. Foi o que eu fiz:

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

Desta vez, recebi um erro "A sintaxe do comando está incorreta".

Parece que eu perdi alguns pontos e vírgulas quando introduzi as quebras de linha. Como fazer o código acima funcionar no arquivo de lote do Windows?

    
por Graviton 11.01.2010 / 07:19

3 respostas

1

Esta é a sintaxe correta, que funciona na minha máquina com Windows XP:

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

Esta é a saída:

Date paid 12-AUG-09
hi
    
por 11.01.2010 / 08:38
4

Como Dennis disse, você pode usar o cursor, mas você não deve ter espaços no início das seguintes linhas:

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

Caso contrário, não funciona. No entanto, se você estiver disposto a deixar o DO na linha original, você pode usar parênteses para delimitar um bloco

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

Você precisa de um carat " ^ " para um caractere de continuação de linha no final de cada linha, onde os comandos são divididos.

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