Linha de string dividida lida por um arquivo de lote

3

existe uma maneira de "dividir" o valor da linha de string lida por um arquivo em lote? Suponha que esse arquivo de texto

192.168.1.2; PC_NAME_1

192.168.1.3; PC_NAME_3

...

Eu gostaria de ler a linha 1, e dividir o valor em duas variáveis ... Então eu posso usar o endereço IP, e também, Nome do PC (para outros fins) ... por exemplo:

for /f %%x in (txtfile.txt) do ( ....

Obrigado

    
por stighy 29.03.2011 / 15:09

1 resposta

2

Sim, isso pode ser feito. Uma sintaxe especial FOR é usada

for /F "delims=," %A in (filename.txt) do call subbatch.bat %A %B %C %D %E

Isso dividirá apenas por vírgula. Mas por padrão, ele se dividirá no espaço e na guia. o termo 'tokens' pode especificar quantos daqueles com quem você quer lidar

for /F "tokens=1,2,3,*" %A in (filename.txt) do call subbatch.bat %A %B %C "%D"

Neste caso,% D irá conter tudo, desde o quarto delimito e além.

O que se deve ter em mente, porém, é que "Do" não é um bloco de procedimentos, é uma chamada única. É onde "goto" ou "call" pode ser usado para invocar mais lógicas. Meus exemplos acima chamam outro arquivo em lote e passam os parâmetros necessários como opções de linha de comando, portanto, para esses arquivos de subbatch, as variáveis estarão em% 1 e% 2.

    
por 29.03.2011 / 15:30