Ir ao conteúdo

Bat Bat Windows Remover Espaco bco do final da linha


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Postado

Boa noite , conseguem me ajudar com essa bat , ate ontem estava funcionando , não sei o que ocorreu parou de funcionar.

Essa bat le um arquivo de entrada , e deveria remover os caracteres em branco do FINAL DA LINHA exemplo.

 

ANTONIO ROGERIO                          <<-  aqui deixei alguns espacos em branco apos o ROGERIO

Deveria ficar conforme abaxo:

ANTONIO ROGERIO

 

Esta ficando assim

 

ANTONIOROGERIO

 

Meu codigo:

 

@echo off

REM ------> TIRA ESPACOS EM BCO FINAL DA LINHA do ARQUIVO  (esta_na_matricula_e_nao_esta_arquivo_itau.txt) <------


chcp 1252 >nul
set Arquivo=esta_na_matricula_e_nao_esta_arquivo_itau.txt
if not exist "%Arquivo%" exit

SetLocal EnableDelayedExpansion

for %%a in ("%Arquivo%") do (
                             set NArquivo=%%~na
                             set EArquivo=%%~xa
                             set CArquivo=%%~dpa
                            )

set "NovoArquivo=%CArquivo%%NArquivo%_Resultado%EArquivo%"

for /f "usebackq delims=" %%a in ("%Arquivo%") do call :Editar "%%~a"
exit

:Editar
echo "%~1"
set "Linha="                   
set "Linha=%~1"
set "Linha=%Linha: =%"
>>"%NovoArquivo%" echo %Linha%
goto :EOF

 

 

  • Obrigado 1
  • Solução
Postado

Nessa parte abaixo você remove todos os espaços da linha não só ao final:

set "Linha=%Linha: =%"

 

Teria que ser algo assim, verificar se o último caractere de uma linha é um espaço e caso sim remover o último charactere:

IF %Linha:~-1%==" " SET "Linha=%Linha:~0,-1%"

 

 

@echo off

:: Bat para remover espaços ao final da linha
:: Você pode especificar um arquivo na variável Arquivo ou arrastar um arquivo de texto até o batch...

chcp 1252 >nul

SET Arquivo=texto.txt
IF NOT EXIST "%Arquivo%" (IF EXIST "%~1" (SET "Arquivo=%~1") else (EXIT))

for %%a in ("%Arquivo%") do (
                             SET "NArquivo=%%~na"
                             SET "EArquivo=%%~xa"
                             SET "CArquivo=%%~dpa"
                            )

for /f "usebackq delims=" %%a in ("%Arquivo%") do (
                                                   SET "Linha=%%~a"
                                                   CALL :Editar
                                                  )

EXIT

:Editar
ECHO "%Linha%"
IF "%Linha:~-1%"==" " (
                       SET "Linha=%Linha:~0,-1%"
                       GOTO :Editar
                      )
for %%a in ("%Linha%") do >>"%CArquivo%%NArquivo%_Resultado%EArquivo%" ECHO %%~a
GOTO :EOF

 

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