Usar os pontos de interrupção nos scripts do Windows PowerShell

Concluído

Um ponto de interrupção pausa um script e fornece um prompt interativo. No prompt interativo, você pode consultar ou modificar valores de variável e continuar o script. Você usará os pontos de interrupção para solucionar problemas de scripts, quando não se comportarem conforme o esperado.

Em um prompt do Windows PowerShell, você pode definir os pontos de interrupção usando o cmdlet Set-PSBreakPoint. Os pontos de interrupção podem ser definidos de acordo com a linha do script, em um comando específico que está sendo usado ou em uma variável específica que está sendo usada. O exemplo a seguir descreve como definir um ponto de interrupção em uma linha específica de um script:

Set-PSBreakPoint -Script "MyScript.ps1" -Line 23

Ao definir um ponto de interrupção de acordo com uma linha, você precisa ter cuidado ao editar o script. À medida que você edita o script, pode adicionar ou remover linhas, e o ponto de interrupção não afetará o mesmo código pretendido inicialmente.

O exemplo a seguir descreve como definir um ponto de interrupção em um comando específico:

Set-PSBreakPoint -Command "Set-ADUser" -Script "MyScript.ps1"

Ao definir um ponto de interrupção de acordo com um comando, você pode incluir caracteres curinga. Por exemplo, você pode usar o valor *-ADUser para disparar um ponto de interrupção para Get-ADUser, Set-ADUser, New-ADUser e Remove-ADUser.

Para definir um ponto de interrupção para uma variável específica, faça o seguinte:

Set-PSBreakPoint -Variable "computer" -Script "MyScript.ps1" -Mode ReadWrite

Você pode usar o parâmetro -Mode para variáveis, para identificar se deseja interromper no momento em que o valor da variável for lido, gravado ou ambos. Os valores válidos são Read, Write e ReadWrite.

A ação padrão para Set-PSBreakPoint é interromper, que fornece o prompt interativo. No entanto, em vez disso, você pode usar o parâmetro -Action para especificar o código executado. Isso permite executar operações complexas, como avaliar valores de variável, e interromper apenas se o valor estiver fora de um intervalo específico.

Observação

Os pontos de interrupção são armazenados na memória, e não como parte do script. Os pontos de interrupção não são compartilhados entre vários prompts do Windows PowerShell e são removidos quando o prompt é fechado.

ISE do PowerShell

No ISE (Ambiente de Script Integrado do Windows PowerShell), você pode definir pontos de interrupção de acordo com a linha. As opções relacionadas aos pontos de interrupção estão no menu Depurar. As linhas configuradas como pontos de interrupção estão em destaque, facilitando a identificação. Além disso, no Windows PowerShell ISE, à medida que você adiciona ou remove linhas do script, os pontos de interrupção são atualizados automaticamente com o número de linha correto.

Visual Studio Code

O Microsoft Visual Studio Code permite definir e usar pontos de interrupção com opções mais avançadas do que o ISE do PowerShell. Você pode configurar pontos de interrupção condicionais, que são disparados quando as variáveis estão fora de um intervalo ou correspondem a um valor específico.

As informações sobre o conteúdo de variável também são mais fáceis de encontrar no Visual Studio Code. Depois que um ponto de interrupção é disparado e você está no depurador, uma seção de variáveis exibe o conteúdo da variável para que você não precise interrogá-las.