Removendo o espaço em branco em branco no arquivo .txt

0

Como faço para remover um espaço em branco à direita em cada linha em um arquivo .txt no seguinte comando? Eu criei o script abaixo para remover o primeiro caractere em cada linha, mas isso cria um espaço em branco no final de cada linha ...

@echo off

setlocal enabledelayedexpansion

for /F "tokens=*" %%A in (C:\test\Index.txt) do (
    set line=%%A
    echo !line:~1! >> C:\test\Index1.txt
)
    
por Someone in VA 05.09.2013 / 20:30

2 respostas

1

Basta remover o espaço extra da sua fonte;)

@echo off
setlocal enabledelayedexpansion

for /F "tokens=*" %%A in (C:\test\Index.txt) do (
    set line=%%A
    echo(!line:~1!>>C:\test\Index1.txt
)

Eu também usei echo( para proteger contra linhas que ficam vazias quando você tira o primeiro caractere. ECHO sem nada a seguir resulta em ECHO is off. mensagem na sua saída.

Seu script simplista funciona bem em muitos casos. Mas ele terá problemas se sua entrada contiver ! character, ou se você precisar preservar linhas em branco. Existem soluções para esses problemas, mas o código se torna mais complicado e mais lento.

Eu uso um utilitário JScript / batch híbrido chamado REPL.BAT sempre que desejo modificar o conteúdo de um arquivo. Ele realiza uma pesquisa em regex e substitui stdin e grava o resultado em stdout.

Assumindo que o REPL.BAT está no seu diretório atual, ou melhor ainda, em algum lugar dentro do seu PATH, então o seu script pode ser substituído pelo seguinte, que é ao mesmo tempo mais rápido e confiável:

type "C:\test\Index.txt"|repl "^." "" >"C:\test\Index1.txt"
    
por 05.09.2013 / 22:36
0

você pode usar sed para Windows:

sed "s/\s*$//" infile.txt>outfile.txt
    
por 15.09.2013 / 09:44