Olá Adriano,
Sim é possível apagar dados de um arquivo .txt
. Para isto, você deve encontrar a linha que você deseja apagar com um comando de busca por strings no prompt.
Deixe-me te mostrar como fazer isto abaixo.
Supondo o arquivo de texto alura.txt
com o seguinte conteúdo:
Ola eu sou uma linha
Linha RUIM - deletar!
Eu sou uma outra linha
Outra linha RUIM - Remover!
E que você queira deletar as linhas que contêm a palavra RUIM
. Podemos utilizar o comando findstr
que é responsável de fazer uma busca em arquivos de texto para achar a linha que você deseja remover.
O seu uso é assim:
findstr /v "RUIM" alura.txt
A flag -v é para indicar que você quer mostrar todas as linhas que NÃO contêm a palavra buscada, no caso "RUIM". Este comando vai retornar o seguinte conteúdo:
Ola eu sou uma linha
Eu sou uma outra linha
Agora que temos um texto com apenas as linhas que desejamos, podemos salvar este texto em um arquivo de saída, utilizando o redirecionador >:
findstr /v "RUIM" alura.txt > saida.txt
E depois modificar o arquivo original, o alura.txt
, para que ele tenha o contéudo filtrado que está no saida.txt
:
saida.txt > alura.txt
O conteúdo final do alura.txt
será:
Ola eu sou uma linha
Eu sou uma outra linha
Que é exatamente o que queríamos. Podemos até mesmo deletar o arquivo de saída, já que não vamos precisar mais dele:
del saida.txt
Resumindo tudo em um único script, ficaria assim:
findstr /v "RUIM" alura.txt > saida.txt
saida.txt > alura.txt
del saida.txt
Espero que resolva sua dúvida!
Quanto a sua questão, se você deseja se aprofundar mais sobre batch script, ESTE tutorial tem bastante coisas avançadas que você pode ir consultando conforme a necessidade!
Atenciosamente,
Douglas Quintanilha