Ir ao conteúdo

Bat Bat windows ler arquivo


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Postado

Boa tarde , preciso ler um arquivo txt e apendar o texto lido sempre na mesma linha.

 

exemplo arquivo a ser lido

SUSPEND ELETRO.P002.APPL.AARQENVI;

SUSPEND ELETRO.P002.APPL.AARQRECE;

 

 

 

como devera ficar :

 

SUSPEND ELETRO.P002.APPL.AARQENVI;SUSPEND ELETRO.P002.APPL.AARQRECE;

Postado

@Antonio Baptista eu disse que é sacanagem dar a resposta, mas é algo tão simples que acredito não ter problema.

fiz um programinha aqui

código:

#coisa rapida
print("insira o diretório abaixo:")
print(r"exemplo: x:\user\minhacasa\file.txt")
diretorio_do_arquivo = input("diretorio completo: ")
texto = [x.replace("\n","") for x in open(diretorio_do_arquivo,"r",encoding="utf-8")]
texto = "".join(texto)
arquivo = open(diretorio_do_arquivo,"w",encoding="utf-8")
arquivo.write(texto)
arquivo.close()

 

Postado

@Swalls Boa tarde , segue os erros que deram

 

C:\PASTA>#coisa rapida
'#coisa' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\PASTA>print("insira o diret├│rio abaixo:")
Não é possível inicializar o dispositivo PRN

C:\PASTA>print(r"exemplo: c:\pasta\file.txt")
Não é possível inicializar o dispositivo PRN

C:\PASTA>diretorio_do_arquivo = input("c:\pasta\file.txt ")
'diretorio_do_arquivo' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\PASTA>texto = [x.replace("\n","") for x in open(diretorio_do_arquivo,"r",encoding="utf-8")]
'texto' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\PASTA>texto = "".join(texto)
'texto' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\PASTA>arquivo = open(diretorio_do_arquivo,"w",encoding="utf-8")
'arquivo' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\PASTA>arquivo.write(texto)
'arquivo.write' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\PASTA>arquivo.close()
'arquivo.close' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\PASTA>

  • Solução
Postado

Veja se é isso, você tem que arrastar o arquivo de texto para o bat e em seguida será criado outro arquivo de texto com o mesmo nome do original só que com _mod no nome e esse não vai ter quebra de linha....

 

GUZRx2L.gif

 

@echo off

if /i not "%~x1"==".txt" exit
for /f "usebackq delims=" %%a in ("%~1") do echo |set /p="%%a">>"%~n1_mod.%~x1"
exit

 

  • Obrigado 1
Postado

@ricardo_br @ricardo_br  @Ricardo _br  bom dia , nesse codigo que me enviou,tem como em vez de arrastar o arquivo pra dentro da bat , deixarmos um nome fixo do arquivo de entrada ? tipo assim sempre o arquivo de entrada  sera ENTRADA.TXT ?

 

Obrigado

 

@echo off

if /i not "%~x1"==".txt" exit
for /f "usebackq delims=" %%a in ("%~1") do echo |set /p="%%a">>"%~n1_mod.%~x1"
exit

  • Curtir 1
Postado

Sim ficaria algo assim onde "set Arquivo=" é o arquivo original e "set Arquivo2=" é onde o arquivo modificado deve ser salvo....


 

@echo off

set Arquivo=c:\Arquivos\Entrada.txt
set Arquivo2=C:\Arquivos\Entrada_mod.txt

if not exist "%Arquivo%" exit
for /f "usebackq delims=" %%a in ("%Arquivo%") do echo |set /p="%%a">>"%Arquivo2%.txt"
exit

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...