Não há nenhuma maneira de dizer PARA o comando não tratar delims consecutivos como um único delim. A maneira que eu trabalho tipicamente em torno deste é “pre processar” a linha de entrada e procurar pares de delims com nada entre eles. Eu substituo estes com o algo entre os delims que eu posso então verific para ver se há no código e tratar como um valor faltante ou vazio.
Assim se a linha de entrada era
aaa, bbb
E eu quero processar 4 valores um pouco do que os 2 a que PARA o coletor da vontade à revelia, a seguir mim converter primeiramente a linha
aaa, @, @, bbb
e então alimentar isso no PARA e analisá-lo gramaticalmente na vírgula.
Eu estou unindo o código com esta mudança, deixo-me sei vai para você. Eu fiz um par outros ajustes pequenos, deixo-me sei que perguntas você tem.
- necessário para adicionar o EnableDelayedExpansion setlocal de modo que eu pudesse atualizar e usar uma variável dentro de um laço
- definiu o nome de arquivo da entrada como uma variável, e citou-o no cano principal PARA aquele lê-o, para segurar o caso onde o nome de arquivo poderia incluir espaços
- o exterior PARA o laço lê a linha inteira, a seguir nós atribuímos aquele a uma variável de modo que nós possamos substituir os valores “vazios” com um placeholder (eu me usei @, poderia ser qualquer coisa que você gosta)
- então outro PARA bem como seu original analisa gramaticalmente a corda resultante e chama a sub-rotina
- Eu adicionei um ECO do inputline antes e depois de que a conversão que apenas assim você pode ver como trabalha, estas seria removido mais tarde
Esperar que isto ajuda
~bp