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
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
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.