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
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?
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
)
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
Tags windows batch-file