none
Mais Powershell RRS feed

  • Pergunta

  • Prezados,

     

    Estou com algumas dúvidas em alguma coisas no Powershell. Mais em otimização do texto e código.

     

    Por exemplo, estou com este código abaixo:

     

     

    Code Block

    cls

    Write-Host "::::::::::::::::::::::[ PCexShell 2008 ]::::::::::::::::::::::" -ForegroundColor White -BackgroundColor Black
    Write-Host "::                                                          ::" -ForegroundColor White -BackgroundColor Black
    Write-Host ":: Autor: Artur de Souza Aragão                             ::" -ForegroundColor White -BackgroundColor Black
    Write-Host ":: Versão: 0.1   Build: 73   Release Date: 16/12/2007       ::" -ForegroundColor White -BackgroundColor Black
    Write-Host "::                                                          ::" -ForegroundColor White -BackgroundColor Black
    Write-Host "::                                                          ::" -ForegroundColor White -BackgroundColor Black
    Write-Host "::                                                          ::" -ForegroundColor White -BackgroundColor Black
    Write-Host "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::" -ForegroundColor White -BackgroundColor Black
    Write-Host "                                                              "

    $strComputer = "."


    Write-Host "Início do Inventário: " (get-date) -ForegroundColor Green -BackgroundColor black

    $colItems = Get-WMIObject -Class "Win32_OperatingSystem" -Property "Caption, Version" `
    -NameSpace "root\cimv2" -ComputerName $strComputer
     ForEach ($objItem in $colItems) {
      Write-Host "Sistema Operacional: " $objItem.Caption -ForegroundColor Black -BackgroundColor Gray
      Write-Host "Build: " $objItem.Version -ForegroundColor Black -BackgroundColor Gray
     }

     

     

    Preciso fazer o seguinte:

     

    1- Não queria ter que repetir o comando de configuração da fonte tantas vezes, posso fazer isto através de uma variável? Tentei, mas dá erro.

    2- É possível fazer com um único Write-Host printar o cabeçalho do código?

    3- Queria saber quais são so substitutos de "&", "&_", "_", "vbCrLf"?

    4- No código à seguir, é possível fazer o mesmo para o código acima?

    Code Block

    $a = @{Expression={$_.Name};Label="Nome do Processo";width=20}, `
    @{Expression={$_.ID};Label="Identificação do Processo";width=30}, `
    @{Expression={$_.MainWindowTitle};Label="Título da Janela";width=30}

    Get-Process | Format-Table $a

     

    5- Eu quero formatar o texto que está ao lado da propriedade "$objItem.Caption". O "Sistema Operacional:" com uma cor e a propiredade "$objItem.Caption" com outra cor. Tanto de fundo como de texto. Como faço?

    6- Como faço para setar a localidade (região) sempre para Português Brasil?


    Bom estas são as dúvidas iniciais. Vão surgir outras e pode ser que isto venha a ajudar alguém futuramente.

     

    Abraços,

     

    Artur Aragão

     

    terça-feira, 18 de dezembro de 2007 18:19

Respostas

  • Por partes:

    1) sim. Leia mais sobre o cmdlet Invoke-Expression

    2) Dá. Armazena o cabeçalho inteiro em uma variável e escreva ela de uma vez com o write host.

    3) Precisa? Basta colocar eles dentro de uma string.

    4) idem 1.

    5) Split na string, duas vezes o comando write-host com o parametro nonewline

    6) Não entendi.

    []s,

    Vinicius
     
    terça-feira, 25 de dezembro de 2007 03:02
    Moderador