none
Dúvidas - Como fazer alguns comandos com Powershell? RRS feed

  • Pergunta

  • Prezados,

     

    Estou precisando gerar um script para adicionar informações a 1 comando e estou com dúvidas de como proceder com eles.

     

    Eu tenho uma lista em txt de e-mails e domínios um abaixo do outro. Preciso separá-los por estas categorias. Sei que o comando Get-Content lê o conteúdo destes arquivos e agora preciso realizar algumas filtragens e tratamentos nestas informações.

     

    Este é o comando para pegar as infromações

    $GetList = Get-Content C:\arquivo\test.txt | Sort-Object

     

    Então gostaria de saber:

     

    1- Como faço para eliminar espaços em branco antes e depois da string? O comando Trim no Vb faz isto numa boa, mas e através do comando GetContent? Não sei como fazê-lo.

    2- Como faço para separar os ítens por tipo?

    Exemplo:

    198.172.132.71
    203.200.152.16
    210.97.53.129
    *@bdsmfetish.net
    *@besthardcore.net

    logo@gmail.com

    hotmail.com

     

    Preciso saber como gerar uma lista apenas com os IPs, outra com apenas os endereços de e-mail e outra com os endereços de domínio? através do comando GetContent? Não sei como fazê-lo.2- Como faço para separar os ítens por tipo?


    3- Como faço para verificar duplicidade dentro do arquivo texto?

    4- E por último. Ufa!!! Como faço para pegar estas listas que estão com os ítens embaixo um do outro e jogo em uma variável para serem separados em 1 linha com "," entre cada ítem. Exemplo:

     

    De:

    198.172.132.71
    203.200.152.16
    210.97.53.129
    *@bdsmfetish.net
    *@besthardcore.net

    logo@gmail.com

    hotmail.com

     

    Para:

    198.172.132.71, 203.200.152.16, 210.97.53.129, *@bdsmfetish.net, *@besthardcore.net, logo@gmail.com, hotmail.com

     

    Muito obrigado pela atenção de Vocês.

    segunda-feira, 21 de janeiro de 2008 19:51

Respostas

  • Artur,

    Veja este exemplo, tenho um arquivo com vária URL, uma por linha:

    url.txt

    www.microsoft.com
    www.google.com
    www.nexa.com.br

    O trecho de código abaixo usa o get-content e depois transforma o array em uma única linha utilizando o Join.

    $url = Get-Content url.txt
    $Var = [string]::join(",", $url)

    O valor de $VAR é:

    www.microsoft.com,www.google.com,www.nexa.com.br

    Converting VBScript's Join Function

    technet.microsoft.com/en-us/library/ee176891.aspx

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

    Multirão de Respostas

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


    Fábio de Paula Junior


    domingo, 11 de novembro de 2012 13:56
    Moderador

Todas as Respostas

  • Bom,

     

    Pessoal.

     

    Consegui resolver algumas das minhs dúvidas pesquisando com mais calma aqui em casa.

     

    Então o meu script está assim:

     

    Code Block

    # Ordenar Lista em Ordem Alfabética
    # ---------------------------------

    Write-Host "|---------[ Antispam - Formata Lista Negra ]--------|"
    Write-Host "|   Versão: 1.0"
    Write-Host "|---------------------------------------------------|"
    Write-Host "|---------| Importa Lista |-------------------------|"
    $GetList = (Get-Content C:\scripts\blacklist_exch07.txt)
    Write-Host "|---------| Elimina espaços em branco |-------------|"
    $GetList = $GetList -Replace ' ', ''
    Write-Host "|---------| Organiza em ordem alfabética |----------|"
    $GetList = $GetList | Sort-Object
    Write-Host "|---------| Gera nova lista formatada |-------------|"
    $GetList = $GetList | Out-File C:\scripts\listanegra.txt
    Write-Host "|---------| Fim do cmdlet |-------------------------|"
    Write-Host "|---------------------------------------------------|"

     

     

    Agora preciso separar desta lista formatada endereços ips, endereços de e-mail e domínios e separá-los em 3 listas. Aí isto envolveria antes trabalhar estas informações.

     

    Precisava de uma função para verificar endereços io (xxx.xxx.xxx.xxx), uma para verificar endereços válidos de e-mail e outra para endereços válidos de domínio.

     

    O meu intuito depois é fazer neste mesmo script um menu dinâmico de forma a adicionar os textos, verificar se o ítem é válido e se já não existe na lista. Daí, depois Eu realizo as demais formatações.

     

    Há um comando que vou executar ond os ítens devem estar separados por ","  e um do lado do outro. Ainda não encontrei como fazer isto. 

     

    Grato à todos.

    terça-feira, 22 de janeiro de 2008 03:44
  • Bom,

     

    Eu consegui me virar um pouco aqui e consegui fazer mais ou menos o que Eu precisava.

     

    Code Snippet
    # Antispam - Configuração da Lista Negra
    # --------------------------------------
    clear
    Write-Host "|---------[ Antispam - Formata Lista Negra ]--------|"
    Write-Host "|   Autor: Artur de Souza Aragão                    |"
    Write-Host "|   Versão: 1.0.1                                   |"
    Write-Host "|---------------------------------------------------|"
    Write-Host "|---------|" (Get-Date -Format "dd/MM/yyyy - hh:mm:ss") "|-----------------|"
    Write-Host "|---------| Importa Lista |-------------------------|"
    $GetList = (Get-Content .\blacklist_exch07.txt)
    Write-Host "|---------| Informações |---------------------------|"
    #
    Write-Host "|---------| Elimina espaços em branco |-------------|"
    $GetList = $GetList -Replace(" ", "")
    Write-Host "|---------| Organiza em ordem alfabética |----------|"
    $GetList = $GetList | Sort-Object
    Write-Host "|---------| Gera nova lista formatada |-------------|"
    $GetList = $GetList | Out-File .\listanegra.txt
    Write-Host "|---------| Fim do cmdlet |-------------------------|"
    Write-Host "|---------------------------------------------------|"

     

     

     

    Eu não quero me ater a maiores tratamentos neste momento, apenas precisava Pegar o array do Get-Content que são informações inseridas uma abaixo da outra e jogá-las em 1 única variável sendo que cada ítem na mesma linha e separados por vírgula. Alguém pode me dar algum exemplo????

     

    Grato.

    quinta-feira, 24 de janeiro de 2008 18:51
  • Artur,

    Veja este exemplo, tenho um arquivo com vária URL, uma por linha:

    url.txt

    www.microsoft.com
    www.google.com
    www.nexa.com.br

    O trecho de código abaixo usa o get-content e depois transforma o array em uma única linha utilizando o Join.

    $url = Get-Content url.txt
    $Var = [string]::join(",", $url)

    O valor de $VAR é:

    www.microsoft.com,www.google.com,www.nexa.com.br

    Converting VBScript's Join Function

    technet.microsoft.com/en-us/library/ee176891.aspx

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

    Multirão de Respostas

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


    Fábio de Paula Junior


    domingo, 11 de novembro de 2012 13:56
    Moderador