Compartilhar via


Get-IseSnippet

Obtém snippets que o usuário criou.

Sintaxe

Default (Default)

Get-IseSnippet

Description

O cmdlet Get-ISESnippet obtém os arquivos PS1XML que contêm snippets de texto reutilizáveis criados pelo usuário. Ele funciona apenas no ISE (Ambiente de Script Integrado) do Windows PowerShell.

Quando você usa o cmdlet New-IseSnippet para criar um snippet de código, New-IseSnippet cria um <snippetTitle>. Arquivo Snippets.ps1xml no diretório $home\Documents\WindowsPowerShell\Snippets. Get-ISESnippet obtém os arquivos de snippet no diretório Snippets.

Esse cmdlet não obtém snippets internos ou snippets que são importados de módulos por meio do cmdlet Import-IseSnippet.

Esse cmdlet foi introduzido no Windows PowerShell 3.0.

Exemplos

Exemplo 1: Obter todos os snippets definidos pelo usuário

PS C:\> Get-ISESnippet

Esse comando obtém todos os snippets de definição de usuário no diretório Snippets.

Exemplo 2: copiar todos os snippets definidos pelo usuário de computadores remotos para um diretório compartilhado

PS C:\> Invoke-Command -Computer (Get-Content Servers.txt) {Get-ISESnippet | Copy-Item -Destination \\Server01\Share01\Snippets}

Esse comando copia todos os snippets criados pelo usuário de um grupo de computadores remotos para um diretório snippets compartilhado.

O comando usa o cmdlet Invoke-Command para executar um comando Get-ISESnippet nos computadores no arquivo Servers.txt. Um operador de pipeline (|) envia os arquivos de snippet para o cmdlet Copy-Item, que os copia para o diretório especificado pelo parâmetro Destination.

Exemplo 3: Exibir o título e o texto de cada snippet em um computador local

PS C:\> #Parse-Snippet Function

function Parse-Snippet
{
  $A = Get-ISESnippet
  $SnippetNamespace = @{x="https://schemas.microsoft.com/PowerShell/Snippets"}
  foreach ($SnippetFile in $A)
   {
     Write-Host ""
     $Title = Select-Xml -Path $SnippetFile.FullName -Namespace $SnippetNamespace -XPath "//x:Title" | foreach {$_.Node.InnerXML}
     $Text =  Select-Xml -Path $SnippetFile.FullName -Namespace $SnippetNamespace -XPath "//x:Script" | foreach {$_.Node.InnerText}
     Write-Host "Title: $Title"
     Write-Host "Text: $Text"
   }
}

# Sample Output

Title: Mandatory
Text:
Param
(
  [parameter(Mandatory=True)]
  [String[]]
  $<ParameterName>
)

Title: Copyright
Text:  (c) Fabrikam, Inc. 2012

Este exemplo usa o get-ISESnippet e os cmdlets de Select-Xml para exibir o título e o texto de cada snippet no computador local.

Exemplo 4: Exibir o título e a descrição de todos os snippets na sessão

PS C:\> $PSISE.CurrentPowerShellTab.Snippets | Format-Table DisplayTitle, Description

Esse comando exibe o título e a descrição de todos os snippets na sessão, incluindo snippets internos, snippets definidos pelo usuário e snippets importados.

O comando usa o modelo de objeto ISE do Windows PowerShell. A variável $PSISE representa o programa de host ISE do Windows PowerShell. A propriedade CurrentPowerShellTab da variável $PSISE representa a sessão atual. A propriedade Snippets representa snippets na sessão atual.

O $PSISE. O comando CurrentPowerShellTab.Snippets retorna um objeto Microsoft.PowerShell.Host.ISE.ISESnippet que representa um snippet, diferentemente do cmdlet Get-IseSnippet , que retorna um objeto de arquivo (System.Io.FileInfo) que representa um arquivo snippet.

O comando também usa o cmdlet Format-Table para exibir as propriedades DisplayTitle e Description dos snippets em uma tabela.

Saídas

FileInfo

Esse cmdlet retorna um objeto de arquivo que representa o arquivo de snippet.

Observações

  • O cmdlet New-IseSnippet armazena novos snippets criados pelo usuário em arquivos .ps1xml não assinados. Dessa forma, o Windows PowerShell não pode adicioná-los a uma sessão na qual a política de execução é AllSigned ou Restrito. Em uma sessão Restricted ou AllSigned, você pode criar, obter e importar snippets não assinados criados pelo usuário, mas não é possível usá-los na sessão.

    Para usar snippets não assinados criados pelo usuário que o cmdlet Get-IseSnippet retorna, altere a política de execução e reinicie o ISE do Windows PowerShell.

    Para obter mais informações sobre as políticas de execução do Windows PowerShell, consulte about_Execution_Policies.