Como Obter Argumentos da Linha de Comando no Windows PowerShell

  1. Definir Parâmetros em Script PowerShell
  2. Parâmetros Nomeados em Script PowerShell
  3. Atribuir Valores Padrão a Parâmetros em Script PowerShell
  4. Parâmetros de Alternância em Script PowerShell
  5. Parâmetros Mandatórios em Script PowerShell
Como Obter Argumentos da Linha de Comando no Windows PowerShell

Nós tratamos argumentos usando a função de parâmetro do Windows PowerShell chamada param(). A função de parâmetro do Windows PowerShell é um componente fundamental de qualquer script. Um parâmetro é como os desenvolvedores permitem que os usuários do script forneçam entrada em tempo de execução.

Neste artigo, você aprenderá como criar scripts com a função de parâmetro, usá-los e algumas boas práticas para construir parâmetros.

Definir Parâmetros em Script PowerShell

Os administradores podem criar parâmetros para scripts e funções usando a função de parâmetro param(). Uma função contém um ou mais parâmetros definidos por variáveis.

Hello_World.ps1:

param(
    $message
)

No entanto, para garantir que o parâmetro aceite apenas o tipo de entrada que você precisa, as boas práticas ditam a atribuição de um tipo de dado ao parâmetro com o uso de um bloco de parâmetro [Parameter()] e enclausurando o tipo de dado com colchetes [] antes da variável.

Hello_World.ps1:

param(
    [Parameter()]
    [String]$message
)

No exemplo Hello_World.ps1 acima, a variável message aceitará um valor passado apenas se o valor fornecido tiver um tipo de dado String.

Parâmetros Nomeados em Script PowerShell

Uma maneira de usar a função de parâmetro em um script é por meio do nome do parâmetro – esse método é chamado de parâmetros nomeados. Ao chamar um script ou função via parâmetros nomeados, usamos o nome da variável como o nome completo do parâmetro.

Criamos um Hello_World.ps1 e definimos variáveis dentro da função de parâmetro neste exemplo. Lembre-se de que podemos colocar uma ou mais variáveis dentro da função de parâmetro.

Hello_World.ps1:

param(
    [Parameter()]
    [String]$message,
    [String]$emotion
)

Write-Output $message
Write-Output "I am $emotion"

Podemos então usar os parâmetros nomeados como um argumento ao executar um arquivo .ps1.

.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy'

Saída:

Hello World!
I am happy

Atribuir Valores Padrão a Parâmetros em Script PowerShell

Podemos pré-atribuir um valor a um parâmetro dando ao parâmetro um valor dentro do script. Então, executar o script sem passar valores da linha de execução aceitará o valor padrão da variável definida dentro do script.

param(
    [Parameter()]
    [String]$message = "Hello World",
    [String]$emotion = "happy"
)

Write-Output $message
Write-Output "I am $emotion"
.\Hello_World.ps1

Saída:

Hello World!
I am happy

Parâmetros de Alternância em Script PowerShell

Outro parâmetro que podemos usar é o parâmetro de alternância definido pelo tipo de dado [switch]. O parâmetro de alternância é usado para valores binários ou booleanos para indicar true ou false.

Hello_World.ps1:

param(
    [Parameter()]
    [String]$message,
    [String]$emotion,
    [Switch]$display
)
if ($display) {
    Write-Output $message
    Write-Output "I am $emotion"
}
else {
    Write-Output "User denied confirmation."
}

Podemos chamar nosso script com o parâmetro do script usando a sintaxe abaixo.

.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy' -display:$false

Saída:

User denied confirmation.

Parâmetros Mandatórios em Script PowerShell

É comum ter um ou mais parâmetros que devem ser usados quando um script é executado. Podemos tornar um parâmetro obrigatório adicionando um atributo Mandatory dentro do bloco de parâmetro [Parameter()].

Hello_World.ps1:

param(
    [Parameter(Mandatory)]
    [String]$message,
    [String]$emotion,
    [Switch]$display
)
if ($display) {
    Write-Output $message
    Write-Output "I am $emotion"
}
else {
    Write-Output "User denied confirmation."
}

Ao executar Hello_World.ps1, o Windows PowerShell não permitirá que o script seja executado e solicitará um valor.

.\Hello_World.ps1

Saída:

cmdlet hello_world.ps1 at command pipeline position 1
Supply values for the following parameters:
message:
Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn