FOR…FOREACHE…WHILE
Além do controle de condicional, você pode querer fazer o uso de looping para executar repetidamente um determinado comando e para cada tipo de valor fazer uma determinada execução. Resumindo – Você pode querer fazer um PING para cada endereço IP terminando com 1 até o 245.
Os controles de looping no PS podem ser executados de muitas maneiras, com os comandos:
- For
- ForEach
- While
- Do While
- Do Until
O mais simples é o cmdlet FOR.
for (inicio; condição; proximovalor) {Código de repetição}
for ($a=1; $a -le 10; $a++) {echo 192.168.1.$a}
O ForEach é mais utilizado para executar cada item em uma coleção de informação, seja uma informação coletada em um comando ou filtro ou dados em um array.
A sintaxe do Foreach é bem simples:
ForEach ($variavel e items da coleção) {código de execução}
foreach ($numeros in 1,2,3,4,5,6,7,8,9,10) { $numeros }
Agora que você conhece os recursos IF, ELSE, FOR e ForEach, você pode combinar e começar a ter resultados bem interessantes e poderosos.
foreach ($file in Get-ChildItem) {
if ($file.IsReadOnly) {
Write-Host $file.FullName }
}
O Windows PowerShell entende que a estrutura criada deve exibir cada valor. Ou seja ele usa automaticamente o Foreach. Veja, você pode usar o script:
$process = Get-Process
$processos = $process | foreach { $_.name }
$processos
Ou
$processo = Get-Process
$processo.name
Você pode usar o ForEach de diversas maneiras. Vamos supor que você deseja “matar” vários processos do Notepad. Você usa o comando Get-Process e “para cada” processo do Notepad você mata.
Get-process Notepad | foreach kill
$i = 1
while ($i -le 5)
{
$i++ ;$i
}
Adicione no seu bookmark https://danieldonda.github.io/PowerShell
- PowerShell Wiki
- Command-Lets
- Help Poderoso
- Funções
- Alias
- Controlando a exibição (saída) de informações
- Filtrando resultados na tela (Where Object)
- Módulos
- Scripts no Powershell
- Jobs e Scheduled Jobs
- Executando o PowerShell remotamente
- Gerenciando Servidores
- Gerenciando TCP IP
- Gerenciando o Hyper V
- Downloads