Recentemente tive uma ocorrência na empresa onde um determinado arquivo externo (txt ou csv) estava retornando com colunas invertidas no Layout do arquivo, o problema seria fácil resolver se pudesse alterar o programa que realiza a leitura desse arquivo, só que não 🙁

Outro problema que enfrentei foi o fato de não poder desenvolver nada em C#, então pensei, talvez eu consiga resolver esse problema fazendo um programa de lote (Batch) 🙂

Comecei uma pesquisa na internet e constatei que era possível com poucas linhas de códigos 🙂

1º Imagine um arquivo TXT, CSV ou qualquer outro arquivo que seja delimitado, como por exemplo o layout abaixo.

Nome;CPF,SobreNome
Fabrizio;04665958787;Gianfratti

Nome CPF SobreNome
Fabrizio 04665958787 Gianfratti

Vamos considerar que o Layout descrito acima esta na ordem incorreta, o certo seria, (Nome;SobreNome;CPF).

Dessa forma temos que mudar as colunas de CPF e SobreNome, para isso usamos o trecho de código abaixo em um arquivo .BAT

@echo off

for /f "tokens=1-3 delims=;" %%a in (DGR.R5NIJB.RVS.CRIVOPF.TXT) do (
>> NovoArquivo.TXT echo.%%a;%%c;%%b
)

Algumas observações importantes:
Na variável Tokens estamos falando que a ordenação será da 1º coluna até a 3º coluna, caso você tenha mais colunas no arquivo basta inserir o numero máximo de colunas

Perceba que a ordenação de fato ocorre no comando “%%a;%%c;%%b” onde eu inverto a posição das colunas levando-se em consideração as letras do alfabeto.

Caso o seu delimitador não seja (;) basta alterar na variável delims e também entre a ordenação das colunas %%a;%%c;%%b

Observe que após rodar o trecho de código um novo arquivo será gerado “NovoArquivo.TXT” conforme mencionado no código.

Resultado Final:

Nome;SobreNome;CPF
Fabrizio;Gianfratti;04665958787

Nome SobreNome CPF
Fabrizio Gianfratti 04665958787

Faça um teste e seja feliz 🙂

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Post Navigation