Ir ao conteúdo
  • Cadastre-se

Extrair dados de um arquivo atraves de um arquivo de lote


likansing

Posts recomendados

Olá,

Estou precisando ler uma informação em um arquivo (*.TXT, por exemplo), de uma linha e coluna especifica, exemplo:

tenho um arquivo com o conteúdo abaixo:

123456789

987654321

asdfghjklç~

qwerttyuiui

preciso pegar a informação da linha 2 entre a coluna 3 até a coluna 7, ou seja, tenho que pegar "76543". Como posso fazer isso? Dá para fazer apenas em comandos de DOS?

Valeu...

Link para o comentário
Compartilhar em outros sites

Creio que em "DOS puro" (command.com) e também no "DOS do Windows XP/2000" (cmd.exe) você não vai conseguir isso sem utilizar algum programa auxiliar.

Com o cmd.exe + o cut.exe do GNU Utilities você consegue. Com o cmd você consegue fazer um for para ler o arquivo de texto e daí usa o cut para pegar só as colunas que você quer. Já com o "command", esse for não funciona...

Taí o código, assumindo que seu arquivo de dados é o "teste.txt". Acho que é auto-explicável... Se tiver alguma dúvida, pergunte.


@echo off

set i=1

for /f "tokens=1 skip=1 delims=" %%a in (texto.txt) do (
if %i% == 1 (
echo %%a | cut -b3-7
goto exit
)
)

:exit

JP

Link para o comentário
Compartilhar em outros sites

Obrigado desde já,

Porém realizei o download do GNU utilities de outro site (http://utools.com/download_prod.asp?download%5Fid=700), pois deste link que você me passou diz que a pagina não pode ser exibida, mas tudo bem!...

Criei um arq. "teste.txt" com os dados lá dentro. rodei o bat com o código que você me passo, mas não funciona. Coloquei um pause depois do exit (no arquivo bat) para ver o resultado, mas ele nem para. quando é dado um duplo click no bat, ele abre e fecha a janela do cmd.exe rapidamente.

O q pode ser?

O resultado do q eu qro (q é parte do arquivo teste.txt) vai aparecer na tela?

obrigado.

Link para o comentário
Compartilhar em outros sites

O link que passei parece ok daqui... Acabei de testar novamente. Foi de lá que peguei o cut para fazer o bat proce. Aliás, desde que conheço a internet, nunca vi o sourceforge fora do ar.

Você descompactou o pacote? Pos o cut.exe e o teste.txt na mesma pasta do .bat?

Notei que te sacanei numa negócio... O nome do arquivo é "texto.txt" e não "teste.txt". (é só olhar no código do "for" que você vê texto.txt)

Sim, aparece na tela.


U:\>teste
76543

JP

Link para o comentário
Compartilhar em outros sites

beleza...Funcionou, obrigado!!!

tenho uma duvida...aonde eu mudo no arquivo (.bat) para mudar de linha??...consigo ir até a linha 4 (skip=4), caso eu queira uma linha maior que 4 dá erro!...

outra pergunta...

a saída do arquivo está sendo a seguinte por exemplo se eu jogar em outro arquivo.

@echo off

set i=1

for /f "tokens=1 skip=1 delims=" %%a in (texto.txt) do (

if %i% == 1 (

echo %%a | cut -b3-7 > resposta.bat

goto exit

)

)

:exit

nesta programação as informações serão salvas no arquivo "resposta.bat", porém gostaria que o arquivo resposta.bat ficasse assim:

set valor="dados do arquivo texto.txt"

,ou seja, gostaria que os dados lidos do arquivo "texto.txt" fossem declarados como uma variavel (no exemplo com nome valor) no arquivo "resultado.bat".

é possível FariaJP fazer isso?

Obrigado..

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...