# Treinamento PowerShell

PowerShell é uma poderosa linguagem de script e um shell\`\`\`markdown Limpeza e reinicialização: Você pode limpar o console usando o botão "Limpar" ou reiniciar o console usando o botão "Reiniciar console" para redefinir o estado atual.\
\
O console local é um console embutido que é executado diretamente na janela do Sherpa RPA. Permite verificar rapidamente comandos ou expressões individuais. É bem adequado para testar e depurar pequenos trechos de código.

<figure><img src="https://1245874961-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fti2Raw08aYi0Vr2rkcD9%2Fuploads%2Fgit-blob-2e7224086f82bac09912eb9fc10fad5d03c5ff43%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20(433).png?alt=media" alt=""><figcaption></figcaption></figure>

Quando o Robô ainda não está em execução, apenas o console local está disponível. O console local permite verificar comandos, expressões e condições:<br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXftLMOhzlZDMVl1ol-J_IcXwf_XCR2b7rVbZxkvIVBa7oxRrrydUqxBQ5ZliSZjl8RhIsffG5wpSi5qYCsN1eBnBMX0aISdExR7wzF5w5PWEw1G9SFdaCoPAiho5Ev0aZCuTDaIaQ?key=lj_Rcgf7GmeThGb8eC0j_g" alt=""><figcaption></figcaption></figure>

Se você iniciar o Robô em modo de depuração e pausá-lo, terá a oportunidade de trabalhar com o console remoto (este é o contexto do próprio Robô, todos os comandos são executados em sua pilha PowerShell), o que permite visualizar as variáveis atuais do Robô, alterá-las e verificar expressões com base nos dados inseridos. Para pausar o Robô, o Usuário deve:

* definir pontos de interrupção. Para isso, ele deve clicar com o botão direito no bloco desejado e:

  * escolher ![](https://1245874961-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fti2Raw08aYi0Vr2rkcD9%2Fuploads%2Fgit-blob-71f63bcbeb236ef6a4ead11804ff5f71b3999beb%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20\(435\).png?alt=media) na lista suspensa;
  * clicar no bloco desejado e pressionar F9 no teclado;
  * pressionar o botão "Ponto de interrupção" no menu "Depuração": ![](https://1245874961-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fti2Raw08aYi0Vr2rkcD9%2Fuploads%2Fgit-blob-9fcb12ff20729c5f87ec30abfe90d41a82c701e0%2F2025-07-21_20-55-06.png?alt=media).

  O bloco será destacado com uma borda vermelha:

<figure><img src="https://1245874961-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fti2Raw08aYi0Vr2rkcD9%2Fuploads%2Fgit-blob-3db5cbc4b42b2a18b7d0bf4be0d9855d96811d9b%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20(437).png?alt=media" alt=""><figcaption></figcaption></figure>

* pressionar o botão ![](https://1245874961-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fti2Raw08aYi0Vr2rkcD9%2Fuploads%2Fgit-blob-a09dd3421ee0a8b11431bd7eca88099a7f55924e%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20\(438\).png?alt=media). O Robô será interrompido no bloco do diagrama onde o ponto de interrupção foi definido;
* inserir o nome da variável (ou outro comando para trabalhar com o console remoto):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcbADAsss3iRaF1tahAWJxSJTrsrsd8tCmXEW5LjlUgOXzW4H1TZb2bHCpFfFi3r_Q8NIJknqh5n9eyluxS_HZQdJPFwVIfXWThZpp_robxg6HZg7d7maCXY8egfqII3y6z3AO9LQ?key=lj_Rcgf7GmeThGb8eC0j_g" alt=""><figcaption></figcaption></figure>

Assim, o controle no console ocorre através de dois fluxos: local (“L”) e remoto (“R”). Ao iniciar e pausar o Robô, o console remoto (no Robô) é ativado automaticamente. Também é possível alternar entre esses fluxos, para isso é necessário pressionar o botão correspondente: “L” ou “R”, enquanto o Robô está pausado:

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfv7hM7JrFUW9Nid0Wr1ft6p1ZaF7pUPytjZNv8FvYDoI8sPMQ_fzGEyb-CzNTsVUjcYfvmIu5FXLDXA0q-5mB4ZiFVTifq_YbViP5ikN-RwEy_T0VvdXcu22_28PxQay0UG9A9?key=lj_Rcgf7GmeThGb8eC0j_g" alt=""><figcaption></figcaption></figure>

Exemplos de uso:

* Verificação de valores de variáveis: Insira o nome da variável, por exemplo, `$myVariable`, para ver seu valor atual.
* Métodos e propriedades disponíveis para esta variável: Insira o nome da variável, por exemplo, `$myVariable`, em seguida, insira um ponto `.` e pressione Ctrl+Space.
* Execução de expressões: Você pode executar expressões mais complexas, como `$myArray | Where-Object { $_ -eq "value" }`, para filtrar arrays.
* Depuração de funções: Se você tiver funções, pode chamá-las do console para verificar seu funcionamento, por exemplo, `MyFunction -Parameter $myParameter`.

**O trabalho no console é demonstrado no seguinte vídeo:**

{% embed url="<https://sherparpa.ru/ucontent/?02>" %}

**Como usar as dicas do IntelliSense no console do Sherpa Designer é demonstrado no seguinte vídeo:**

{% embed url="<https://sherparpa.ru/ucontent/?A9zG>" %}

## 7. Criando seus próprios blocos no editor de blocos do Sherpa RPA

Se você deseja usar suas próprias funções no Sherpa RPA, há a possibilidade de criar seus blocos.

Exemplo de como fazer isso com PowerShell e uma biblioteca externa (arquivo .dll):

* Conectando uma biblioteca externa:

`Add-Type -Path "e:\123\1\TestDialog.dll"`

* Criando um objeto de classe da biblioteca:

`$mycls = [TestDialog.Class1]::new();`

* Chamando métodos de diálogo:

`$mycls.MyDialog1($MyText);`

* Executando o método estático `MyDialog2`, que recebe a variável `$MyText`:

`[TestDialog.Class1]::MyDialog2($MyText);`

* Trabalhando com tabelas de dados:

`$dt = $dt.DefaultView.ToTable($false, "Column1", "Column2")`

Uma tabela de dados é formada com as colunas "Column1" e "Column2".

```
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/pt/obuchenie-po-razrabotke-na-platforme-sherpa-rpa/obuchenie-powershell.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
