Powershell - Guia rápido
Windows PowerShell é um command-line shell e scripting languageprojetado especialmente para administração de sistema. É analógico no Linux é chamado de script Bash. Construído no .NET Framework, o Windows PowerShell ajuda os profissionais de TI a controlar e automatizar a administração do sistema operacional Windows e dos aplicativos executados no ambiente Windows Server.
Comandos do Windows PowerShell, chamados cmdlets, permitem gerenciar os computadores a partir da linha de comando. Os provedores do Windows PowerShell permitem que você acesse armazenamentos de dados, como o Registro e o Armazenamento de certificados, com a mesma facilidade com que acessa o sistema de arquivos.
Além disso, o Windows PowerShell tem um analisador de expressão sofisticado e uma linguagem de script totalmente desenvolvida. Portanto, em palavras simples, você pode concluir todas as tarefas que realiza com a GUI e muito mais.
PowerShell ISE
O Windows PowerShell Integrated Scripting Environment(ISE) é um aplicativo host para Windows PowerShell. No Windows PowerShell ISE, você pode executar comandos e escrever, testar e depurar scripts em uma única interface de usuário gráfica baseada no Windows com edição multilinha, preenchimento de tabulação, coloração de sintaxe, execução seletiva, ajuda contextual e suporte para direito a -left idiomas.
Você pode usar itens de menu e atalhos de teclado para executar muitas das mesmas tarefas que executaria no console do Windows PowerShell. Por exemplo, ao depurar um script no Windows PowerShell ISE, para definir um ponto de interrupção de linha em um script, clique com o botão direito do mouse na linha de código e clique emToggle Breakpoint.
Comandos básicos do PowerShell
Existem muitos comandos do PowerShell e é muito difícil incluir todos esses comandos neste tutorial. Vamos nos concentrar em alguns dos comandos mais importantes e básicos do PowerShell.
A primeira etapa é ir para o comando Get-Help que fornece uma explicação sobre como fornecer um comando e seu parâmetro.
O ícone do PowerShell pode ser encontrado na barra de tarefas e no menu iniciar. Basta clicar no ícone para abrir.
Para abri-lo, basta clicar no ícone e a tela a seguir será aberta e significa que o PowerShell está pronto para você trabalhar.
Versão PowerShell
A última versão do PowerShell é 5.0 e para verificar o que está instalado em nosso servidor, digitamos o seguinte comando - :$PSVersionTable como mostrado na captura de tela a seguir e da tela também sabemos que temos PSVersion 4.0
Para atualizar com a versão mais recente, onde há mais Cmdlets, precisamos baixar Windows Management Framework 5.0 a partir do seguinte link - https://www.microsoft.com/en-us/download/details.aspx?id=50395 e instale-o.
PowerShell ISE
O Windows PowerShell Integrated Scripting Environment(ISE) é um aplicativo host para Windows PowerShell. No Windows PowerShell ISE, você pode executar comandos e escrever, testar e depurar scripts em uma única interface de usuário gráfica baseada no Windows com edição multilinha, preenchimento de tabulação, coloração de sintaxe, execução seletiva, ajuda contextual e suporte para direito a -left idiomas.
Você pode usar itens de menu e atalhos de teclado para executar muitas das mesmas tarefas que executaria no console do Windows PowerShell. Por exemplo, ao depurar um script no Windows PowerShell ISE, para definir um ponto de interrupção de linha em um script, clique com o botão direito do mouse na linha de código e clique emToggle Breakpoint.
Para abri-lo, basta ir para Iniciar - Pesquisar e, em seguida, Tipo - PowerShell como mostrado na imagem a seguir.
Em seguida, clique em Windows PowerShell ISE. Ou clique na seta para baixo conforme mostrado na imagem a seguir.
Ele listará todos os aplicativos instalados no servidor e, em seguida, clique em Windows PowerShell ISE.
A seguinte tabela será aberta -
Possui três seções, que incluem - O PowerShell Console com o número 1, então Scripting File o número 2 e o terceiro é o Command Module onde você pode encontrar o módulo.
Ao criar o script, você pode executar diretamente e ver o resultado como o exemplo a seguir -
Comandos básicos do PowerShell
Existem muitos comandos do PowerShell e é muito difícil incluir todos esses comandos neste tutorial. Vamos nos concentrar em alguns dos comandos mais importantes e básicos do PowerShell.
A primeira etapa é ir para o comando Get-Help que fornece uma explicação sobre como fornecer um comando e seu parâmetro.
To get the list of Updates -
- Get-HotFix e instalar um hot fix da seguinte maneira
- Get-HotFix -id kb2741530
Um cmdlet ou "Command let" é um comando leve usado no ambiente Windows PowerShell. O tempo de execução do Windows PowerShell invoca esses cmdlets no prompt de comando. Você pode criar e invocá-los programaticamente por meio de APIs do Windows PowerShell.
Cmdlet vs Comando
Os cmdlets são muito diferentes dos comandos em outros ambientes de shell de comando nas seguintes maneiras -
Os cmdlets são objetos de classe do .NET Framework; e não apenas executáveis autônomos.
Os cmdlets podem ser facilmente construídos a partir de apenas algumas linhas de código.
Análise, apresentação de erro e formatação de saída não são tratadas por cmdlets. Isso é feito pelo tempo de execução do Windows PowerShell.
O processo de cmdlets funciona em objetos que não estão no fluxo de texto e os objetos podem ser passados como saída para pipelining.
Os cmdlets são baseados em registros, pois processam um único objeto por vez.
Conseguindo ajuda
A primeira etapa é ir para o comando Get-Help que fornece uma explicação sobre como fornecer um comando e seu parâmetro.
A seguir estão os exemplos de scripts do PowerShell em Arquivos e Pastas.
Sr. Não. | Operação e descrição |
---|---|
1 |
Criação de pastas
Script de exemplo para mostrar como criar pasta (s) usando scripts do PowerShell. |
2 |
Criação de arquivos
Script de exemplo para mostrar como criar arquivo (s) usando scripts do PowerShell. |
3 |
Copiando pastas
Script de exemplo para mostrar como copiar arquivo (s) usando scripts do PowerShell. |
4 |
Copiando arquivos
Script de exemplo para mostrar como criar arquivo (s) usando scripts do PowerShell. |
5 |
Excluindo Pastas
Script de exemplo para mostrar como excluir pasta (s) usando scripts do PowerShell. |
6 |
Excluindo Arquivos
Script de exemplo para mostrar como excluir arquivo (s) usando scripts do PowerShell. |
7 |
Movendo pastas
Script de exemplo para mostrar como mover pasta (s) usando scripts do PowerShell. |
8 |
Movendo arquivos
Script de exemplo para mostrar como mover arquivo (s) usando scripts do PowerShell. |
9 |
Renomear pastas
Script de exemplo para mostrar como renomear pasta (s) usando scripts do PowerShell. |
10 |
Renomear arquivos
Script de exemplo para mostrar como renomear arquivo (s) usando scripts do PowerShell. |
11 |
Recuperando Item
Script de exemplo para mostrar como recuperar item (ns) usando scripts do PowerShell. |
12 |
Verificar existência de pasta
Script de exemplo para mostrar como verificar a existência da pasta usando scripts do PowerShell. |
13 |
Verificar a existência do arquivo
Script de exemplo para mostrar como verificar a existência do arquivo usando scripts do PowerShell. |
A seguir estão os exemplos de scripts do PowerShell em Data e Hora do Sistema.
Sr. Não. | Operação e descrição |
---|---|
1 |
Obter Data do Sistema
Script de exemplo para mostrar como obter a data do sistema usando scripts do PowerShell. |
2 |
Definir data do sistema
Script de exemplo para mostrar como definir a data do sistema usando scripts do PowerShell. |
3 |
Obter hora do sistema
Script de exemplo para mostrar como obter a hora do sistema usando scripts do PowerShell. |
4 |
Definir hora do sistema
Script de exemplo para mostrar como definir a hora do sistema usando scripts do PowerShell. |
A seguir estão os exemplos de scripts do PowerShell para criar e ler diferentes tipos de arquivos.
Sr. Não. | Operação e descrição |
---|---|
1 |
Criar arquivo de texto
Script de exemplo para mostrar como criar um arquivo de texto usando scripts do PowerShell. |
2 |
Ler arquivo de texto
Script de exemplo para mostrar como ler um arquivo de texto usando scripts do PowerShell. |
3 |
Criar arquivo XML
Script de exemplo para mostrar como criar um arquivo XML usando scripts do PowerShell. |
4 |
Ler arquivo XML
Script de exemplo para mostrar como ler um arquivo XML usando scripts do PowerShell. |
5 |
Criar arquivo CSV
Script de exemplo para mostrar como criar um arquivo CSV usando scripts do PowerShell. |
6 |
Ler arquivo CSV
Script de exemplo para mostrar como ler um arquivo CSV usando scripts do PowerShell. |
7 |
Criar arquivo HTML
Script de exemplo para mostrar como criar um arquivo HTML usando scripts do PowerShell. |
8 |
Ler arquivo HTML
Script de exemplo para mostrar como ler um arquivo HTML usando scripts do PowerShell. |
9 |
Apagando o conteúdo do arquivo
Script de exemplo para mostrar como apagar o conteúdo do arquivo usando scripts do PowerShell. |
10 |
Anexar dados de texto
Script de exemplo para mostrar como acrescentar texto ao conteúdo de um arquivo usando scripts do PowerShell. |
Cmdlets
Um cmdlet ou "Command let" é um comando leve usado no ambiente Windows PowerShell. O tempo de execução do Windows PowerShell invoca esses cmdlets no prompt de comando. Você pode criar e invocá-los programaticamente por meio de APIs do Windows PowerShell. A seguir estão exemplos de uso avançado de cmdlets.
Sr. Não. | Tipo e descrição de cmdlet |
---|---|
1 |
Cmdlet Get-Unique
Programa de exemplo para mostrar o cmdlet Get-Unique. |
2 |
Group-Object Cmdlet Programa de exemplo para mostrar o cmdlet Group-Object. |
3 |
Cmdlet Measure-Object
Programa de exemplo para mostrar o cmdlet Measure-Object. |
4 |
Cmdlet Compare-Object
Programa de exemplo para mostrar o cmdlet Compare-Object. |
5 |
Cmdlet Format-List
Programa de exemplo para mostrar o cmdlet Format-List. |
6 |
Cmdlet de formato amplo
Programa de exemplo para mostrar cmdlet de formato amplo. |
7 |
Cmdlet Where-Object
Programa de exemplo para mostrar o cmdlet Where-Object. |
8 |
Cmdlet Get-ChildItem
Programa de exemplo para mostrar o cmdlet Get-ChildItem. |
9 |
Cmdlet ForEach-Object
Programa de exemplo para mostrar o cmdlet ForEach-Object. |
10 |
Cmdlet Start-Sleep
Programa de exemplo para mostrar o cmdlet Start-Sleep. |
11 |
Cmdlet Read-Host
Programa de exemplo para mostrar o cmdlet Read-Host. |
12 |
Cmdlet Select-Object
Programa de exemplo para mostrar o cmdlet Select-Object. |
13 |
Sort-Object Cmdlet
Programa de exemplo para mostrar o cmdlet Sort-Object. |
14 |
Cmdlet de aviso de gravação
Programa de exemplo para mostrar o cmdlet de aviso de gravação. |
15 |
Cmdlet Write-Host
Programa de exemplo para mostrar o cmdlet Write-Host. |
16 |
Cmdlet Invoke-Item
Programa de exemplo para mostrar o cmdlet Invoke-Item. |
17 |
Cmdlet Invoke-Expression
Programa de exemplo para mostrar o cmdlet Invoke-Expression. |
18 |
Cmdlet Measure-Command
Programa de exemplo para mostrar o cmdlet Measure-Command. |
19 |
Cmdlet Invoke-History
Programa de exemplo para mostrar o cmdlet Invoke-History. |
20 |
Cmdlet Add-History
Programa de exemplo para mostrar o cmdlet Add-History. |
21 |
Cmdlet Get-History
Programa de exemplo para mostrar o cmdlet Get-History. |
22 |
Cmdlet Get-Culture
Programa de exemplo para mostrar o cmdlet Get-Culture. |
Windows PowerShell é um command-line shell e scripting languageprojetado especialmente para administração de sistema. Seu análogo no Linux é chamado de script Bash. Construído no .NET Framework, o Windows PowerShell ajuda os profissionais de TI a controlar e automatizar a administração do sistema operacional Windows e dos aplicativos executados no ambiente Windows Server.
Comandos do Windows PowerShell, chamados cmdlets, permitem gerenciar os computadores a partir da linha de comando. Os provedores do Windows PowerShell permitem que você acesse armazenamentos de dados, como o Registro e o Armazenamento de certificados, com a mesma facilidade com que acessa o sistema de arquivos.
Além disso, o Windows PowerShell tem um analisador de expressão sofisticado e uma linguagem de script totalmente desenvolvida. Portanto, em palavras simples, você pode concluir todas as tarefas que realiza com a GUI e muito mais. O Windows PowerShell Scripting é uma linguagem de script totalmente desenvolvida e tem um analisador de expressões rico /
Características
Cmdlets - Os cmdlets executam tarefas comuns de administração do sistema, por exemplo, gerenciar o registro, serviços, processos, logs de eventos e usar o Windows Management Instrumentation (WMI).
Task oriented - A linguagem de script do PowerShell é baseada em tarefas e fornece suporte para scripts e ferramentas de linha de comando existentes.
Consistent design- Como cmdlets e armazenamentos de dados de sistema usam sintaxe comum e têm convenções de nomenclatura comuns, o compartilhamento de dados é fácil. A saída de um cmdlet pode ser canalizada para outro cmdlet sem qualquer manipulação.
Simple to Use - A navegação simplificada e baseada em comandos permite que os usuários naveguem no registro e outros armazenamentos de dados semelhantes à navegação do sistema de arquivos.
Object based- PowerShell possui recursos poderosos de manipulação de objetos. Os objetos podem ser enviados para outras ferramentas ou bancos de dados diretamente.
Extensible interface. - O PowerShell é personalizável, pois os fornecedores de software independentes e os desenvolvedores corporativos podem criar ferramentas e utilitários personalizados usando o PowerShell para administrar seu software.
Variáveis
Variáveis do PowerShell são objetos nomeados. Como o PowerShell trabalha com objetos, essas variáveis são usadas para trabalhar com objetos.
Criando variável
O nome da variável deve começar com $ e pode conter caracteres alfanuméricos e sublinhados em seus nomes. Uma variável pode ser criada digitando um nome de variável válido.
Digite o seguinte comando no console PowerShell ISE. Supondo que você esteja na pasta D: \ test.
$location = Get-Location
Aqui, criamos uma variável $ location e atribuímos a ela a saída do cmdlet Get-Location. Agora contém a localização atual.
Usando variável
Digite o seguinte comando no console PowerShell ISE.
$location
Resultado
Você pode ver a saída a seguir no console do PowerShell.
Path
----
D:\test
Obtendo informações de variáveis
O cmdlet Get-Member pode informar o tipo de variável que está sendo usado. Veja o exemplo abaixo.
$location | Get-Member
Resultado
Você pode ver a saída a seguir no console do PowerShell.
TypeName: System.Management.Automation.PathInfo
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Drive Property System.Management.Automation.PSDriveInfo Drive {get;}
Path Property System.String Path {get;}
Provider Property System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath Property System.String ProviderPath {get;}
PowerShell Variáveis especiais armazenam informações sobre PowerShell. Também são chamadas de variáveis automáticas. A seguir está a lista de variáveis automáticas -
Operador | Descrição |
---|---|
$$ | Representa o último token na última linha recebido pela sessão. |
$? | Representa o status de execução da última operação. Ele contém TRUE se a última operação foi bem-sucedida e FALSE se ela falhou. |
$ ^ | Representa o primeiro token na última linha recebida pela sessão. |
$ _ | O mesmo que $ PSItem. Contém o objeto atual no objeto pipeline. Você pode usar essa variável em comandos que executam uma ação em cada objeto ou em objetos selecionados em um pipeline. |
$ ARGS | Representa uma matriz de parâmetros não declarados e / ou valores de parâmetros que são passados para uma função, script ou bloco de script. |
$ CONSOLEFILENAME | Representa o caminho do arquivo de console (.psc1) que foi usado mais recentemente na sessão. |
$ ERROR | Representa uma matriz de objetos de erro que representam os erros mais recentes. |
$ EVENT | Representa um objeto PSEventArgs que representa o evento que está sendo processado. |
$ EVENTARGS | Representa um objeto que representa o primeiro argumento do evento que deriva de EventArgs do evento que está sendo processado. |
$ EVENTSUBSCRIBER | Representa um objeto PSEventSubscriber que representa o assinante do evento que está sendo processado. |
$ EXECUTIONCONTEXT | Representa um objeto EngineIntrinsics que representa o contexto de execução do host PowerShell. |
$ FALSE | Representa FALSE. Você pode usar esta variável para representar FALSE em comandos e scripts em vez de usar a string "false". |
$ FOREACH | Representa o enumerador (não os valores resultantes) de um loop ForEach. Você pode usar as propriedades e métodos de enumeradores no valor da variável $ ForEach. |
$ HOME | Representa o caminho completo do diretório inicial do usuário. |
$ HOST | Representa um objeto que representa o aplicativo host atual do PowerShell. |
$ INPUT | Representa um enumerador que enumera todas as entradas que são passadas para uma função. |
$ LASTEXITCODE | Representa o código de saída do último programa baseado no Windows que foi executado. |
$ MATCHES | A variável $ Matches funciona com os operadores -match e -notmatch. |
$ MYINVOCATION | $ MyInvocation é preenchido apenas para scripts, funções e blocos de script. As propriedades PSScriptRoot e PSCommandPath da variável automática $ MyInvocation contêm informações sobre o invocador ou o script de chamada, não o script atual. |
$ NESTEDPROMPTLEVEL | Representa o nível de prompt atual. |
$ NULL | $ null é uma variável automática que contém um valor NULL ou vazio. Você pode usar essa variável para representar um valor ausente ou indefinido em comandos e scripts. |
$ PID | Representa o identificador de processo (PID) do processo que está hospedando a sessão atual do PowerShell. |
$ PROFILE | Representa o caminho completo do perfil do PowerShell para o usuário atual e o aplicativo host atual. |
$ PSCMDLET | Representa um objeto que representa o cmdlet ou função avançada que está sendo executada. |
$ PSCOMMANDPATH | Representa o caminho completo e o nome do arquivo do script que está sendo executado. |
$ PSCULTURE | Representa o nome da cultura atualmente em uso no sistema operacional. |
$ PSDEBUGCONTEXT | Durante a depuração, esta variável contém informações sobre o ambiente de depuração. Caso contrário, ele contém um valor NULL. |
$ PSHOME | Representa o caminho completo do diretório de instalação do PowerShell. |
$ PSITEM | O mesmo que $ _. Contém o objeto atual no objeto pipeline. |
$ PSSCRIPTROOT | Representa o diretório a partir do qual um script está sendo executado. |
$ PSSENDERINFO | Representa informações sobre o usuário que iniciou a PSSession, incluindo a identidade do usuário e o fuso horário do computador de origem. |
$ PSUICULTURE | Representa o nome da cultura da interface do usuário (IU) que está atualmente em uso no sistema operacional. |
$ PSVERSIONTABLE | Representa uma tabela de hash somente leitura que exibe detalhes sobre a versão do PowerShell em execução na sessão atual. |
$ SENDER | Representa o objeto que gerou este evento. |
$ SHELLID | Representa o identificador do shell atual. |
$ STACKTRACE | Representa um rastreamento de pilha para o erro mais recente. |
$ THIS | Em um bloco de script que define uma propriedade ou método de script, a variável $ This refere-se ao objeto que está sendo estendido. |
$ TRUE | Representa TRUE. Você pode usar esta variável para representar TRUE em comandos e scripts. |
O PowerShell fornece um rico conjunto de operadores para manipular variáveis. Podemos dividir todos os operadores do PowerShell nos seguintes grupos -
- Operadores aritméticos
- Operadores de atribuição
- Operadores de comparação
- Operadores lógicos
- Operadores Redirecionais
- Operadores derramados e unidos
- Operadores de tipo
- Operadores unários
Os operadores aritméticos
Operadores aritméticos são usados em expressões matemáticas da mesma forma que são usados em álgebra. A tabela a seguir lista os operadores aritméticos -
Suponha que a variável inteira A tenha 10 e a variável B tenha 20, então -
Operador | Descrição | Exemplo |
---|---|---|
+ (Adição) | Adiciona valores em qualquer lado do operador. | A + B dará 30 |
- (Subtração) | Subtrai o operando direito do operando esquerdo. | A - B dará -10 |
* (Multiplicação) | Multiplica os valores em ambos os lados do operador. | A * B dará 200 |
/ (Divisão) | Divide o operando à esquerda pelo operando à direita. | B / A dará 2 |
% (Módulo) | Divide o operando esquerdo pelo operando direito e retorna o resto. | B% A dará 0 |
Os operadores de comparação
A seguir estão os operadores de atribuição suportados pela linguagem PowerShell -
Suponha que a variável inteira A tenha 10 e a variável B tenha 20, então -
Operador | Descrição | Exemplo |
---|---|---|
eq (igual) | Compara dois valores para serem iguais ou não. | A -eq B dará falso |
ne (diferente de) | Compara dois valores para não serem iguais. | A -ne B dará verdadeiro |
gt (maior que) | Compara o primeiro valor a ser maior que o segundo. | B -gt A dará verdadeiro |
ge (maior ou igual a) | Compara o primeiro valor a ser maior ou igual ao segundo. | B -ge A dará verdadeiro |
lt (menos que) | Compara o primeiro valor como menor que o segundo. | B -lt A dará falso |
le (menor ou igual a) | Compara o primeiro valor como menor ou igual ao segundo. | B -le A dará falso |
Os operadores de atribuição
A seguir estão os operadores de atribuição suportados pela linguagem PowerShell -
Operador | Descrição | Exemplo |
---|---|---|
= | Operador de atribuição simples. Atribui valores de operandos do lado direito para operando do lado esquerdo. | C = A + B irá atribuir o valor de A + B em C |
+ = | Adicionar operador de atribuição AND. Ele adiciona o operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo. | C + = A é equivalente a C = C + A |
- = | Subtraia o operador de atribuição AND. Ele subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo. | C - = A é equivalente a C = C - A |
Os operadores lógicos
A tabela a seguir lista os operadores lógicos -
Suponha que as variáveis booleanas A sejam verdadeiras e a variável B sejam falsas, então -
Operador | Descrição | Exemplo |
---|---|---|
AND (lógico e) | Operador lógico chamado AND. Se ambos os operandos forem diferentes de zero, a condição se torna verdadeira. | (A -AND B) é falso |
OU (lógico ou) | Operador lógico ou chamado. Se qualquer um dos dois operandos for diferente de zero, a condição se torna verdadeira. | (A -OR B) é verdade |
NÃO (lógico não) | Operador lógico chamado NOT. Use para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT tornará falso. | -NOT (A -AND B) é verdadeiro |
Operadores diversos
A seguir estão vários operadores importantes suportados pela linguagem PowerShell -
Operador | Descrição | Exemplo |
---|---|---|
> (Opeator redirecionado) | Operador redirecionado. Atribui a saída a ser impressa no arquivo / dispositivo de saída redirecionado. | dir> test.log irá imprimir a lista de diretórios no arquivo test.log |
Pode haver uma situação em que você precise executar um bloco de código várias vezes. Em geral, as instruções são executadas sequencialmente: a primeira instrução em uma função é executada primeiro, seguida pela segunda e assim por diante.
As linguagens de programação fornecem várias estruturas de controle que permitem caminhos de execução mais complicados.
UMA loop declaração nos permite executar uma declaração ou grupo de declarações várias vezes e a seguir está a forma geral de uma declaração de loop na maioria das linguagens de programação -
A linguagem de programação PowerShell fornece os seguintes tipos de loop para lidar com os requisitos de loop. Clique nos links a seguir para verificar seus detalhes.
Sr. Não. | Loop e descrição |
---|---|
1 | para loop
Execute uma sequência de instruções várias vezes e abrevia o código que gerencia a variável de loop. |
2 | forEach loop
Aprimorado para loop. Isso é usado principalmente para percorrer a coleção de elementos, incluindo matrizes. |
3 | loop while
Repete uma declaração ou grupo de declarações enquanto uma determinada condição for verdadeira. Ele testa a condição antes de executar o corpo do loop. |
4 | fazer ... loop while
Como uma instrução while, exceto que testa a condição no final do corpo do loop. |
As estruturas de tomada de decisão têm uma ou mais condições a serem avaliadas ou testadas pelo programa, junto com uma declaração ou declarações que devem ser executadas se a condição for determinada como verdadeira e, opcionalmente, outras declarações a serem executadas se a condição for determinada ser falso.
A seguir está a forma geral de uma estrutura típica de tomada de decisão encontrada na maioria das linguagens de programação -
A linguagem de script do PowerShell fornece os seguintes tipos de declarações de tomada de decisão. Clique nos links a seguir para verificar seus detalhes.
Sr. Não. | Declaração e descrição |
---|---|
1 | declaração if
A if statement consiste em uma expressão booleana seguida por uma ou mais instruções. |
2 | declaração if ... else
A if statement pode ser seguido por um opcional else statement, que é executado quando a expressão booleana é falsa. |
3 | declaração if aninhada
Você pode usar um if ou elseif declaração dentro de outra if ou elseif afirmações). |
4 | declaração switch
UMA switch instrução permite que uma variável seja testada quanto à igualdade em relação a uma lista de valores. |
PowerShell fornece uma estrutura de dados, o array, que armazena uma coleção sequencial de tamanho fixo de elementos de qualquer tipo. Uma matriz é usada para armazenar uma coleção de dados, mas geralmente é mais útil pensar em uma matriz como uma coleção de variáveis ou objetos.
Em vez de declarar variáveis individuais, como número0, número1, ... e número99, você declara uma variável de matriz, como números e usa números [0], números [1] e ..., números [99] para representar variáveis individuais.
Este tutorial apresenta como declarar variáveis de array, criar arrays e processar arrays usando variáveis indexadas.
Declarando Variáveis de Matriz
Para usar uma matriz em um programa, você deve declarar uma variável para fazer referência à matriz e pode especificar o tipo de matriz à qual a variável pode fazer referência. Aqui está a sintaxe para declarar uma variável de array -
Sintaxe
$A = 1, 2, 3, 4
or
$A = 1..4
Note- Por padrão, o tipo de objetos da matriz é System.Object. O método GetType () retorna o tipo da matriz. O tipo pode ser passado.
Exemplo
Os seguintes trechos de código são exemplos dessa sintaxe -
[int32[]]$intA = 1500,2230,3350,4000
$A = 1, 2, 3, 4
$A.getType()
Isso produzirá o seguinte resultado -
Resultado
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
Os elementos da matriz são acessados por meio do index. Os índices de array são baseados em 0; ou seja, eles começam de 0 aarrayRefVar.length-1.
Exemplo
A instrução a seguir declara uma variável de array, myList, cria um array de 10 elementos do tipo double e atribui sua referência a myList -
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123
A imagem a seguir representa o array myList. Aqui, myList contém dez valores duplos e os índices vão de 0 a 9.
Processando matrizes
Ao processar elementos da matriz, costumamos usar tanto for loop ou foreach loop porque todos os elementos em uma matriz são do mesmo tipo e o tamanho da matriz é conhecido.
Exemplo
Aqui está um exemplo completo que mostra como criar, inicializar e processar matrizes -
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123
write-host("Print all the array elements")
$myList
write-host("Get the length of array")
$myList.Length
write-host("Get Second element of array")
$myList[1]
write-host("Get partial array")
$subList = $myList[1..3]
write-host("print subList")
$subList
write-host("using for loop")
for ($i = 0; $i -le ($myList.length - 1); $i += 1) {
$myList[$i]
}
write-host("using forEach Loop")
foreach ($element in $myList) {
$element
}
write-host("using while Loop")
$i = 0
while($i -lt 4) {
$myList[$i];
$i++
}
write-host("Assign values")
$myList[1] = 10
$myList
Isso produzirá o seguinte resultado -
Resultado
Print all the array elements
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
Get the length of array
10
Get Second element of array
4.5
Get partial array
print subList
4.5
3.3
13.2
using for loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using forEach Loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using while Loop
5.6
4.5
3.3
13.2
Assign values
5.6
10
3.3
13.2
4
34.33
34
45.45
99.993
11123
Os Exemplos de Métodos de Arrays
Aqui está um exemplo completo que mostra operações em arrays usando seus métodos
$myList = @(0..4)
write-host("Print array")
$myList
$myList = @(0..4)
write-host("Assign values")
$myList[1] = 10
$myList
Isso produzirá o seguinte resultado -
Resultado
Clear array
Print array
0
1
2
3
4
Assign values
0
10
2
3
4
Hashtable armazena pares de chave / valor em uma tabela hash. Ao usar um Hashtable, você especifica um objeto que é usado como uma chave e o valor que deseja vincular a essa chave. Geralmente usamos String ou números como chaves.
Este tutorial apresenta como declarar variáveis hashtable, criar hashtables e processar hashtable usando seus métodos.
Declaração de variáveis hashtable
Para usar uma tabela de hash em um programa, você deve declarar uma variável para referenciar a tabela de hash. Aqui está a sintaxe para declarar uma variável hashtable -
Sintaxe
$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{}
Note- Dicionários ordenados podem ser criados usando sintaxe semelhante. Os dicionários ordenados mantêm a ordem em que as entradas são adicionadas, enquanto os hashtables não.
Exemplo
Os seguintes trechos de código são exemplos dessa sintaxe -
$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}
Imprima a tabela de hash.
$hash
Resultado
Name Value
---- -----
ID 1
Color Blue
Shape Square
Os valores da tabela de hash são acessados por meio do keys.
> $hash["ID"]
1
Processando Hashtable
A notação de pontos pode ser usada para acessar chaves ou valores de hashtables.
> $hash.keys
ID
Color
Shape
> $hash.values
1
Blue
Square
Exemplo
Aqui está um exemplo completo que mostra como criar, inicializar e processar hashtable -
$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
write-host("Print all hashtable keys")
$hash.keys
write-host("Print all hashtable values")
$hash.values
write-host("Get ID")
$hash["ID"]
write-host("Get Shape")
$hash.Number
write-host("print Size")
$hash.Count
write-host("Add key-value")
$hash["Updated"] = "Now"
write-host("Add key-value")
$hash.Add("Created","Now")
write-host("print Size")
$hash.Count
write-host("Remove key-value")
$hash.Remove("Updated")
write-host("print Size")
$hash.Count
write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key
Isso produzirá o seguinte resultado -
Resultado
Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key
Name Value
---- -----
Color Blue
Created Now
ID 1
Shape
Square
Uma expressão regular é uma sequência especial de caracteres que ajuda a encontrar ou encontrar outras strings ou conjuntos de strings, usando uma sintaxe especializada mantida em um padrão. Eles podem ser usados para pesquisar, editar ou manipular texto e dados.
Aqui está a tabela que lista toda a sintaxe de metacaracteres de expressão regular disponível no PowerShell -
Subexpressão | Partidas |
---|---|
^ | Corresponde ao início da linha. |
$ | Corresponde ao final da linha. |
. | Corresponde a qualquer caractere único, exceto nova linha. Usandom a opção permite que ele corresponda à nova linha também. |
[...] | Corresponde a qualquer caractere único entre colchetes. |
[^ ...] | Corresponde a qualquer caractere único que não esteja entre colchetes. |
\UMA | Início de toda a corda. |
\ z | Fim de toda a string. |
\ Z | Fim de toda a string, exceto terminador de linha final permitido. |
ré* | Corresponde a 0 ou mais ocorrências da expressão anterior. |
re + | Corresponde a 1 ou mais do anterior. |
ré? | Corresponde a 0 ou 1 ocorrência da expressão anterior. |
re {n} | Corresponde exatamente ao número n de ocorrências da expressão anterior. |
re {n,} | Corresponde a n ou mais ocorrências da expressão anterior. |
re {n, m} | Corresponde a pelo menos n e no máximo m ocorrências da expressão anterior. |
a | b | Corresponde a a ou b. |
(ré) | Agrupa expressões regulares e lembra o texto correspondente. |
(?: re) | Agrupa expressões regulares sem lembrar o texto correspondente. |
(?> re) | Corresponde ao padrão independente sem retrocesso. |
\W | Corresponde aos caracteres da palavra. |
\W | Corresponde aos caracteres não alfabéticos. |
\ s | Corresponde ao espaço em branco. Equivalente a [\ t \ n \ r \ f]. |
\ S | Corresponde ao não espaço em branco. |
\ d | Corresponde aos dígitos. Equivalente a [0-9]. |
\ D | Corresponde aos não dígitos. |
\UMA | Corresponde ao início da string. |
\ Z | Corresponde ao final da string. Se houver uma nova linha, ela corresponderá imediatamente antes da nova linha. |
\ z | Corresponde ao final da string. |
\ G | Corresponde ao ponto onde a última partida terminou. |
\ n | Referência anterior para capturar o número do grupo "n". |
\ b | Corresponde aos limites da palavra fora dos colchetes. Corresponde ao backspace (0x08) quando dentro dos colchetes. |
\ B | Corresponde aos limites sem palavras. |
\ n, \ t, etc. | Corresponde a novas linhas, retornos de carro, guias, etc. |
\ Q | Escape (aspas) de todos os caracteres até \ E. |
\ E | Termina a citação iniciada com \ Q. |
Aqui está um exemplo completo que mostra como usar regex no PowerShell;
Sr. Não. | Correspondência e descrição |
---|---|
1 | Corresponder personagens
Exemplo de caracteres de expressão regular suportados. |
2 | Corresponder classes de personagens
Exemplo de classes de personagens com suporte. |
3 | Quantificadores de correspondência
Exemplo de quantificadores suportados. |
O operador Backtick (`) também é chamado de operador de quebra de linha. Ele permite que um comando seja escrito em várias linhas. Ele pode ser usado para nova linha (`n) ou tabulação (` t) nas frases também. Veja os exemplos abaixo -
Exemplo 1
Get-Service * | Sort-Object ServiceType `
| Format-Table Name, ServiceType, Status -AutoSize
Se tornará
Get-Service * | Sort-Object ServiceType | Format-Table Name, ServiceType, Status -AutoSize
Verifique a saída como
Name ServiceType Status
---- ----------- ------
MSSQLServerADHelper100 Win32OwnProcess Stopped
ntrtscan Win32OwnProcess Running
...
Exemplo 2
Uso de nova linha e guia.
> Write-host "Title Subtitle"
Title Subtitle
> Write-host "Title `nSubtitle"
Title
Subtitle
> Write-host "Title `tSubtitle"
Title Subtitle
O Powershell oferece suporte a três tipos de suportes.
Parenthesis brackets. − ()
Braces brackets. − {}
Square brackets. − []
Parênteses
Este tipo de colchetes é usado para
passar argumentos
inclua vários conjuntos de instruções
resolver ambigüidade
criar matriz
Exemplo
> $array = @("item1", "item2", "item3")
> foreach ($element in $array) { $element }
item1
item2
item3
Colchetes
Este tipo de colchetes é usado para
anexar declarações
comandos de bloco
Exemplo
$x = 10
if($x -le 20){
write-host("This is if statement")
}
Isso produzirá o seguinte resultado -
Resultado
This is if statement.
Colchetes
Este tipo de colchetes é usado para
acesso ao array
acesso a hashtables
filtrar usando expressão regular
Exemplo
> $array = @("item1", "item2", "item3")
> for($i = 0; $i -lt $array.length; $i++){ $array[$i] }
item1
item2
item3
>Get-Process [r-s]*
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
320 72 27300 33764 227 3.95 4028 SCNotification
2298 77 57792 48712 308 2884 SearchIndexer
...
Alias do PowerShell é outro nome para o cmdlet ou para qualquer elemento de comando.
Criando Alias
Usar New-Aliascmdlet para criar um alias. No exemplo a seguir, criamos uma ajuda de alias para o cmdlet Get-Help.
New-Alias -Name help -Value Get-Help
Agora invoque o alias.
help Get-WmiObject -Detailed
Você verá a seguinte saída.
NAME
Get-WmiObject
SYNOPSIS
Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes.
SYNTAX
Get-WmiObject [
...
Obtendo o Alias
Usar get-alias cmdlet para obter todos os alias presentes na sessão atual do powershell.
Get-Alias
Você verá a seguinte saída.
CommandType Name Definition
----------- ---- ----------
Alias % ForEach-Object
Alias ? Where-Object
Alias ac Add-Content
Alias asnp Add-PSSnapIn
...
Impressão