AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1742824
Accepted
Hokus_Pokus
Hokus_Pokus
Asked: 2022-09-17 17:32:18 +0800 CST2022-09-17 17:32:18 +0800 CST 2022-09-17 17:32:18 +0800 CST

PowerShell - Colando conteúdo com Get-Content linha por linha em vez de tudo em um texto

  • 772

Então .. Eu não sou um especialista em scripts do PowerShell .. Eu tenho esse script e estou tentando adicionar uma lista de sites ao arquivo hosts para bloquear. Não consigo descobrir como adicionar cada domínio linha por linha em vez de tudo em uma linha.

Eu queria saber se alguém poderia me ajudar ou me apontar na direção certa.

Segue o código que tenho:

param([string]$DesiredIP = "127.0.0.1"
    ,[string]$Hostname = @(Get-Content ".\src\hosts")
    ,[bool]$CheckHostnameOnly = $false)
#Bætir við færslu í HOSTS skránna.
#Krefst -RunAsAdministrator
$hostsFilePath = "$($Env:WinDir)\system32\Drivers\etc\hosts"
$hostsFile = Get-Content $hostsFilePath

Write-Host "Verið að bæta við $desiredIP fyrir $Hostname í hosts skránna" -ForegroundColor Gray

$escapedHostname = [Regex]::Escape($Hostname)
$patternToMatch = If ($CheckHostnameOnly) { ".*\s+$escapedHostname.*" } Else { ".*$DesiredIP\s+$escapedHostname.*" }
If (($hostsFile) -match $patternToMatch)  {
    Write-Host $desiredIP.PadRight(20," ") "$Hostname - not adding; er nú þegar í hosts skránni" -ForegroundColor DarkYellow
} 
Else {
    Write-Host $desiredIP.PadRight(20," ") "$Hostname - að bæta við í hosts skránna... " -ForegroundColor Yellow
    Add-Content -Encoding UTF8  $hostsFilePath ("$DesiredIP".PadRight(20, " ") + "$Hostname")
    Write-Host " Búið!"
}

Read-Host -Prompt "Allt Klárt! Ýttu á ENTER til að loka glugganum ☺"

Então, meu arquivo hosts termina assim:

127.0.0.1        website.com test.com google.com pirates.net loremipsum.org filler.co.uk en.kremlin.ru test.com testing.com

Meu arquivo .\src\hosts de onde estou obtendo minha lista se parece com isso:

website.com
test.com
google.com
pirates.net
loremipsum.org
filler.co.uk
en.kremlin.ru
test.com
testing.com

Desculpas antecipadamente. Comentários e Strings estão em meu idioma nativo, não em inglês

powershell script
  • 1 1 respostas
  • 61 Views

1 respostas

  • Voted
  1. Best Answer
    Reddy Lutonadio
    2022-09-17T21:10:12+08:002022-09-17T21:10:12+08:00

    Os hosts são escritos em uma única linha porque seu código não está em loop por eles. Eu adicionei foreach($line in $Hostname)ao código. O loop permite adicionar os hosts ao arquivo linha por linha.

    param([string]$DesiredIP = "127.0.0.1"
        ,$Hostname = Get-Content ".\src\hosts"
        ,[bool]$CheckHostnameOnly = $false)
    #Bætir við færslu í HOSTS skránna.
    #Krefst -RunAsAdministrator
    $hostsFilePath = "$($Env:WinDir)\system32\Drivers\etc\hosts"
    $hostsFile = Get-Content $hostsFilePath 
    
    foreach($line in $Hostname) {
    Write-Host "Adding $desiredIP for $line in the hosts file" -ForegroundColor Gray
    
    $escapedHostname = [Regex]::Escape($line)
    $patternToMatch = If ($CheckHostnameOnly) { ".*\s+$escapedHostname.*" } Else { ".*$DesiredIP\s+$escapedHostname.*" }
    If (($hostsFile) -match $patternToMatch)  {
        Write-Host $desiredIP.PadRight(20," ") "$line - not adding; is already in the hosts directory" -ForegroundColor DarkYellow
    } else {
        Write-Host $desiredIP.PadRight(20," ") "$line - adding to the hosts file..." -ForegroundColor Yellow
        Add-Content -Encoding UTF8  $hostsFilePath ("$DesiredIP".PadRight(20, " ") + "$line")
    }
    
    }
        Write-Host " Done!"
    
    
    Read-Host -Prompt "All Done! Press ENTER to close the window ☺"
    

    Obs: Tive que traduzir as saídas em inglês para entender o que estava acontecendo e as mantive no meu código acima. Você precisa alterá-los de volta para o seu idioma.

    • 0

relate perguntas

  • Como colocar string variável em array no powershell?

  • Powershell e regex: lista de arquivos "backup ao salvar" do Notepad ++. Editar nome, classificar por lastwritetime

  • Adicionando cor de primeiro plano ao perfil do Powershell?

  • Não é possível ativar o Microsoft Print to PDF depois de desativado

  • Posso fazer com que este script do PowerShell aceite vírgulas?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve