arquivo em lote, excluir linha por número

1

eu tenho isso: set myvar = ^J | FIND /N /I "texttolookfor" %WINDIR%\system32\drivers\etc\hosts agora eu tenho as linhas que multaram o texto em

como posso excluir essas linhas do arquivo?

Eu sei que posso passar as linhas com FOR , mas a parte de exclusão ainda é complicada para mim

Eu li sobre findstr , suponha que seja melhor, mas não consigo encontrar nada para excluir com isso também

agora eu li sobre

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts > newfile

salva o arquivo para um novo sem a string encontrada ... mas adiciona

"------------------%WINDIR%\system32\drivers\etc\hosts"

no começo, mas quando eu tento

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts > %WINDIR%\system32\drivers\etc\hosts

não funciona ...

    
por Y.G.J 10.12.2012 / 21:00

2 respostas

1

Seu comando:

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts > newfile

adiciona ------------------%WINDIR%\system32\drivers\etc\hosts ao topo do arquivo, como parte da saída padrão de FIND . Experimente sem o redirecionamento e veja.

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts

---------- C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
...

TYPE pode ser usado para catar o arquivo, redirecionar sua saída por FIND e ele não deve exibir o arquivo / caminho:

TYPE %WINDIR%\system32\drivers\etc\hosts | FIND /V "texttolookfor"

Isso também pode ser redirecionado para um novo arquivo:

TYPE %WINDIR%\system32\drivers\etc\hosts | FIND /V "texttolookfor" > newfile
    
por 10.12.2012 / 21:48
0

Experimente a porta Win32 do Grep

Supondo que você queira limpar as linhas que contêm xyz , o comando a seguir fará o que você precisa.

grep -v xyz inputfile.txt > outputfile.txt

Se você quiser corresponder uma linha inteira, isso também é possível usando uma expressão regular. Como o MDMarra já disse nos comentários, por favor, explique o quadro maior do que você está tentando fazer.

p.s. Pipar a saída de volta sobre o arquivo original, provavelmente não é uma boa coisa para fazer, especialmente ao experimentar, e ainda mais especialmente quando é um arquivo de sistema.

    
por 10.12.2012 / 21:26