Get-IseSnippet

Obtiene fragmentos de código creados por el usuario.

Syntax

Get-IseSnippet []

Description

El Get-IseSnippet cmdlet obtiene los archivos PS1XML que contienen fragmentos de texto reutilizables que creó el usuario. Solo funciona en el entorno de scripting integrado (ISE) de Windows PowerShell.

Cuando se usa el New-IseSnippet cmdlet para crear un fragmento de código, New-IseSnippet se crea un <SnippetTitle>.Snippets.ps1xml archivo en el $HOME\Documents\WindowsPowerShell\Snippets directorio . Get-IseSnippet obtiene los archivos de fragmento de código en el directorio Fragmentos de código.

Este cmdlet no obtiene fragmentos de código integrados ni fragmentos de código que se importan desde módulos a través del Import-IseSnippet cmdlet .

Este cmdlet se introdujo en Windows PowerShell 3.0.

Ejemplos

Ejemplo 1: Obtener todos los fragmentos de código definidos por el usuario

En este ejemplo se obtienen todos los fragmentos de código definidos por el usuario en el directorio Fragmentos de código.

Get-IseSnippet

Ejemplo 2: Copia de todos los fragmentos de código definidos por el usuario desde equipos remotos a un directorio compartido

En este ejemplo se copian todos los fragmentos de código creados por el usuario de un grupo de equipos remotos en un directorio de fragmentos de código compartido.

Invoke-Command -Computer (Get-Content Servers.txt) {Get-IseSnippet | Copy-Item -Destination \\Server01\Share01\Snippets}

Invoke-Command se ejecuta Get-IseSnippet en los equipos del Servers.txt archivo . Un operador de canalización (|) envía los archivos de fragmento de código al Copy-Item cmdlet , que los copia en el directorio especificado por el parámetro Destination .

Ejemplo 3: Mostrar el título y el texto de cada fragmento de código en un equipo local

En este ejemplo se usan los Get-IseSnippet cmdlets y Select-Xml para mostrar el título y el texto de cada fragmento de código en el equipo local.

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

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

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

Ejemplo 4: Mostrar el título y la descripción de todos los fragmentos de código de la sesión

En este ejemplo se muestra el título y la descripción de todos los fragmentos de código de la sesión, incluidos los fragmentos integrados, los fragmentos definidos por el usuario y los fragmentos de código importados.

$PSISE.CurrentPowerShellTab.Snippets | Format-Table DisplayTitle, Description

La $PSISE variable representa el programa host de Windows PowerShell ISE. La propiedad CurrentPowerShellTab de la $PSISE variable representa la sesión actual. La propiedad Snippets representa fragmentos de código en la sesión actual.

El $PSISE.CurrentPowerShellTab.Snippets comando devuelve un objeto Microsoft.PowerShell.Host.ISE.ISESnippet que representa un fragmento de código, a diferencia del Get-IseSnippet cmdlet . Get-IseSnippet devuelve un objeto de archivo (System.Io.FileInfo) que representa un archivo de fragmento de código.

El Format-Table cmdlet muestra las propiedades DisplayTitle y Description de los fragmentos de código de una tabla.

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

FileInfo

Este cmdlet devuelve un objeto de archivo que representa el archivo de fragmento de código.

Notas

  • El New-IseSnippet cmdlet almacena nuevos fragmentos de código creados por el usuario en archivos .ps1xml sin firmar. Por lo tanto, Windows PowerShell no puede agregarlos a una sesión en la que la directiva de ejecución es AllSigned o Restricted. En una sesión restringida o AllSigned , puede crear, obtener e importar fragmentos de código sin firmar creados por el usuario, pero no puede usarlos en la sesión.

    Para usar fragmentos de código creados por el usuario sin firmar que devuelve el Get-IseSnippet cmdlet, cambie la directiva de ejecución y, a continuación, reinicie Windows PowerShell ISE.

    Para obtener más información sobre las directivas de ejecución de Windows PowerShell, consulte about_Execution_Policies.