Você está na página 1de 68

Sistemas Operacionais II

PowerShell

Sobre PowerShell
Nova gerao de Shell (famlia Microsoft
Windows);
Permite a execuo remota (Verso 2.0);
Integra com .NET Framework;

Instalao
Windows Installer 3.1;
.NET Framework 2.0 SP 1;
PowerShell 1.0 (ou 2.0).

Poderosa Calculadora
Exemplo:
5 4
(5 + 9) * 4
5GB / 120MB

Executando Comandos Externos


PowerShell pode executar comandos do
clssico Prompt de comandos Microsoft, por
exemplo ipconfig.
ipconfig
ls
dir

Comandos PowerShell
Os comandos internos do PowerShell so
chamados de cmdlets. Os nomes dos
comandos so compostos por um verbo
seguido de - e uma ao.
Digite no terminal:
get-command

Auto Explicativo
Os comandos PowerShell foram desenvolvidos
para exibir explicaes sobre os comandos e o
comportamento de execuo dos mesmos.
Use o comando: get-help

Uso de Parmetros
Parmetros adicionam informaes aos
comandos, tais informaes so utilizadas
internamente para execuo de sua rotina.
Exemplo:
Get-ChildItem -path c:\

Tipos de Parmetros
Existem parmetros que necessitam de valores
e parmetros que so apenas usados
internamente para execuo do algoritmo.
Get-ChildItem c:\windows -recurse -name

Criando Funes
A criao de funo simples e intuitiva, veja
exemplo abaixo:
Para criar:
function quickping {
ping -n 1 -w 100 $args
}

Criando Funes
Para chamar:
quickping 127.0.0.1

Criando um Script
Crie um arquivo de texto simples (com
notepad) na raiz de C:\temp com o nome
teste.ps1 e edite o script abaixo:
Isso um script... Show de bola

Para executar
Primeiro temos que dar permisso:
Set-ExecutionPolicy RemoteSigned
Agora executar:
C:\temp\teste.ps1

Alias para scripts


Podemos criar um apelido para um script.
Set-Alias meuScript c:\temp\teste.ps1

Para chamar basta escrever no termial:


meuScript

Variveis
Permite armazenar valores desconhecidos
(para a fase de codificao);
O tipo definido durante a execuo (baseado
no valor armazenado);
Utiliza-se $ para acessar a varivel.

Exemplo:
$amount = 120
$VAT = 0.19
# Calculate:
$result = $amount * $VAT
# Output result
$result

Atribuindo Retorno de Funes


Podemos resgatar o retorno de funes me
variveis, exemplo:
$lista = Get-ChildItem c:\

Listando Variveis
Podemos listar as variveis que esto
carregadas na memria, exemplo:
Dir variable:list*

Testando se uma varivel existe


Podemos durante a execuo validar se uma
varivel existe para execuo de rotinas.

Test-Path variable:\lista

Excluindo uma Varivel


Podemos excluir variveis da lista de variveis
e liberar memria.

del variable:\lista

Comandos cmdlets
Clear-Variable;
Get-Variable;
New-Variable;
Remove-Variable;
Set-Variable.

New-Variable

New-Variable test -value 100


-description "test variable with
write-protection" -option ReadOnly

Variveis do Ambiente
Existem variveis criadas pelo ambiente que
armazenam informaes teis para
desenvolver scripts de qualidade.
Digite:
Dir env:

Variveis de Ambiente

$env:windir
$env:OS = "Apple MacIntosh OS X
$env:Teste = Reprovar Alunos, teste
1, 2, 3"
del env:\windir

Escopo de Variveis
Variveis podem ter escopo;
Escopo define a visibilidade de uma varivel;
Podemos ter:
global;
local;
private;
script.

Como usar

$private:b = 5;
$local:c = 9;
$global:d = 3;
$script:k = 1;

Tipos de Variveis
Para saber o tipo definido para a varivel:
$variavel.GetType().Name

Definindo um Tipo

[Byte]$flag = 12
$flag.GetType().Name

DateTime

[datetime]$date = "November 12, 2004"


$date

Passando Argumentos para um


Script
Podemos passar argumentos para um script
para execuo interna, desta forma podemos
chamar scripts dentro de scripts de modo
sequencial utilizando os valores gerados.

Argumentos
Altere script c:\temp\teste.ps1 conforme
listagem abaixo:
O nome: $args xxxx

Argumentos
Para executar o script:
meuScript Wellington Pinto de Oliveira

Acesso a um parametro
A varivel args uma coleo, para acessar
um elemento:
Oxxxx: $($args[0]) uuuu xxxxx

Argumentos
Para executar o script:
meuScript Wellington Pinto de Oliveira

Condies
Condies so definidas baseando-se em
comparaes lgicas.

Exemplos
4 -eq 10
wellington -eq WELLINGTON
12 -eq "Hello"
12 -eq "000012"
"12" -eq 12
"12" -eq 012
"012" -eq 012

Exemplos
123 -lt 123.4
123 -lt "123.4"
123 -lt "123.5"

Condies
$a = 10
$a -gt 5
-not ($a -gt 5)
# Shorthand: instead of -not "!" can also be used:
!($a -gt 5)

Combinando Condies
Podemos combinar condies para criar
condies complexas.
( ($age -ge 18) -and ($sex -eq "m" ) )
Usamos operadores especiais, so chamados
lgicos.

Comparao com Collections


Podemos usar operaes de comparao com
arrays e collections.
1,2,3,4,3,2,1 -eq 3
Retorna:
3
3

Comparao com Collections


1,2,3,4,3,2,1 -ne 3
Retorna:
1, 2, 3, 2, 1

Validando a Existncia de um
Elemento
Podemos usar para isso o operador -contains
1,2,3 -contains 5
Retorna:
False

If-Else
Podemos usar a estrutura if-else para executar
blocos de scritps baseado no resultado de uma
condio condio.

If-Else

Exemplo

Exemplo

Exemplo

switch
O Switch permite a comparao de um valor
com n possibilidades e inclusive pode-se
utilizar operadores relacionais ou lgicos.

Exemplo

Exemplo

Comparao entre Strings

Case Sensitivity

Caractere Curinga

Regex

Loop
Um Loop um lao de repetio que pode ser
utilizado para repetir n vezes um bloco de
cdigo.

ForEach-Object

Chamando Mtodos
Get-Process notepad | ForEach-Object
{
$_.Kill()
}

Exemplo

Foreach

Exemplo

Do...While

While

Saindo de um While

For

Loop com switch

Referncia
WELTNER, Tobias. Mastering
Powershell.
Disponvel em: http://
http://powershell.com/Mastering-Powe
rShell.pdf

Você também pode gostar