none
entrar no txt e apagarr somente algumas linhas RRS feed

Todas as Respostas

  • É para apagar as linhas 1 2 3 ou as linhas que seja iguais a, b ou c?

    Tente esse, você arrasta o arquivo de texto até o batch e ele apaga as letras a b c

    @echo off
    
    if not exist "%~1" exit
    set Texto=%~1
    
    for /f "tokens=1* Delims=]" %%a in ('type "%Texto%" ^|find /i /v /n ""') do Call :Editar "%%~b"
    
    del /q "%Texto%"
    ren "%Texto%.tmp" "%~nx1"
    exit
    
    :Editar
    set IgualABC=
    For %%a in (a b c) do IF /i [%~1]==[%%a] set IgualABC=sim
    IF /i not [%IgualABC%]==[sim]>>"%Texto%.tmp" echo/%~1
    goto :EOF


    R. Bohner


    quinta-feira, 2 de dezembro de 2021 20:59
  • na verdade desejo apagar algumas linhas dentro do hosts:

    set APAGAR="127.0.0.1      youtube.com"
    set APAGAR=127.0.0.1       youtube.com.br"
    set APAGAR=127.0.0.1       facebook.com.br"
    set APAGAR=127.0.0.1       facebook.com"
    set APAGAR=127.0.0.1       instagram.com"
    set APAGAR=127.0.0.1       instagram.com.br"
    set APAGAR=127.0.0.1       pt-br.facebook.com"
    set APAGAR=127.0.0.1       www.linkedin.com"
    set APAGAR=127.0.0.1       www.linkedin.com.br"   
    set APAGAR=127.0.0.1       www.twitter.com" 
    set APAGAR=127.0.0.1       www.twitter.com.br" 

    quinta-feira, 2 de dezembro de 2021 22:31
  • aLGUEM PODERIA ME AJUDAR POR FAVOR?
    sexta-feira, 3 de dezembro de 2021 14:59
  • Tente esse script:

    @echo off
    SetLocal EnableDelayedExpansion
    chcp 1252 > Nul
    net session >nul 2>&1 || (powershell start -verb runas '%~0' &exit /b)
    
    set hosts=C:\Windows\System32\drivers\etc\hosts
    
    if /i exist "%host%.temp" del /q /f /a "%hosts%.temp"
    
    set APAGAR[1]=youtube.com
    set APAGAR[2]=youtube.com.br
    set APAGAR[3]=facebook.com.br
    set APAGAR[4]=facebook.com
    set APAGAR[5]=instagram.com
    set APAGAR[6]=instagram.com.br
    set APAGAR[7]=pt-br.facebook.com
    set APAGAR[8]=www.linkedin.com
    set APAGAR[9]=www.linkedin.com.br
    set APAGAR[10]=www.twitter.com
    set APAGAR[11]=www.twitter.com.br
    
    for /f "delims=" %%a in ('type "%hosts%"') do (
                                                   set Linha=%%a
                                                   IF "!Linha:~0,1!"=="#" set /a NComentarios+=1
                                                  )
    set /a LinhaEmBranco=%NComentarios%+1
    for /f "Delims=" %%a in ('type "%hosts%"') do call :Desbloquear "%%~a"
    
    del /q /f "%hosts%"
    ren "%hosts%.temp" hosts
    exit
    
    
    :Desbloquear
    set /a NLinhas+=1
    set "Linha=%~1"
    IF %NLinhas% EQU %LinhaEmBranco% echo.>>"%hosts%.temp"
    IF "%Linha:~0,1%"=="#" >>"%hosts%.temp" echo %~1& goto :EOF
    
    for /L %%a in (1,1,11) do (
                               echo %~1 | find /i "!APAGAR[%%a]!" 1>nul 2>nul
                               IF !Errorlevel! EQU 0 goto :EOF                                                  
                              )
    >>"%hosts%.temp" echo %~1
    goto :EOF
    



    R. Bohner

    sexta-feira, 3 de dezembro de 2021 19:18
  • Não foi, não apagou nada.
    sexta-feira, 3 de dezembro de 2021 19:50
  • Fez alguma modificação nele? Copiou o código direito?

    R. Bohner

    sexta-feira, 3 de dezembro de 2021 19:59
  • Boa tarde.

    É muito mais fácil fazer isso em um console Linux. Imagino que seu sistema já tem WSL. Em vez de usar um arquivo batch, use um shell script:

    -----------------------------------------------------------------------

    #!/bin/bash
    #
    echo "Apagando linhas strings youtube, facebook, instagram e linkedin, no arquivo hosts ..." ;
    sed -i '/youtube\|facebook\|instagram\|linkedin/d' C:/System32/drivers/etc/hosts && echo "OK." ;
    exit

    -----------------------------------------------------------------------

    Copie o script acima e salve como hosts.sh. Abra um terminal Linux, execute "chmod +x hosts.sh" (para tornar o script executavel) e depois rode o script com o comando "./hosts.sh"

    sábado, 4 de dezembro de 2021 20:06
  • na verdade funcionou, porém o hosts no caso o arquivo original ele não esta sendo substituido , na verdade esta sendo criado um novo chamado "hosts.temp",e com isso não estou conseguindo apagar e deixar o arquivo mudado.
    segunda-feira, 6 de dezembro de 2021 13:50
  • Esse parte deveria apagar o hosts e renomear o %hosts%.temp para hosts:

    del /q /f "%hosts%"
    ren "%hosts%.temp" hosts
    exit

    Tente colocar um pause antees do exit para ver qual erro aparece. Também verifica seo a variável %hosts% realmente aponta para o arquivo hosts



    R. Bohner

    segunda-feira, 6 de dezembro de 2021 18:58
  • Dar acesso negado, mesmo executando como administrador.
    segunda-feira, 6 de dezembro de 2021 19:09
  • Alguem poderia me ajudar por favor?
    quarta-feira, 8 de dezembro de 2021 12:06
  • Por favor meu amigos, alguem poderia me ajudaR?
    sexta-feira, 10 de dezembro de 2021 13:21
  • Veja se os administradores tem permissão para editar o arquivo e se não tiver permita que os administradores tenham permissões...

    R. Bohner

    sexta-feira, 10 de dezembro de 2021 15:19
  • Ja tem permissão e ate agora nada.
    sexta-feira, 10 de dezembro de 2021 19:01
  • O usuário que você usa para rodar o bat é um administrador? Verifique as permissões novamente em Propriedades -> Segurança e tente desabilitar o antivírus pode ser que ele esteja bloqueando o bat.

    Manualmente sem ser por bat você consegue fazer modificações no hosts?


    R. Bohner

    sábado, 11 de dezembro de 2021 02:47
  • Manualmente eu consigo, mas da forma de substituir ou renomear, não vai.
    segunda-feira, 27 de dezembro de 2021 13:04
  • Poderia usar esse comando no prompt de comando e postar um screenshot do resultado aqui?

    icacls "%windir%\system32\drivers\etc\hosts"


    R. Bohner

    terça-feira, 28 de dezembro de 2021 14:38