Compartir vía


Get-IseSnippet

Obtiene fragmentos de código creados por el usuario.

Sintaxis

Default (Es el valor predeterminado).

Get-IseSnippet

Description

El cmdlet Get-IseSnippet 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.

Al usar el cmdlet New-IseSnippet para crear un fragmento de código, New-IseSnippet crea un archivo <SnippetTitle>.Snippets.ps1xml en el directorio $HOME\Documents\WindowsPowerShell\Snippets. 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 cmdlet Import-IseSnippet.

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) -ScriptBlock {
    Get-IseSnippet | Copy-Item -Destination \\Server01\Share01\Snippets
}

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

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 cmdlets Get-IseSnippet 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 variable $psISE representa el programa host de Windows PowerShell ISE. La propiedad CurrentPowerShellTab de la variable $psISE representa la sesión actual. La propiedad Snippets representa fragmentos de código en la sesión actual.

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

El cmdlet Format-Table 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 cmdlet New-IseSnippet 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 se AllSigned o Restringido. En una sesión de Restricted 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 cmdlet Get-IseSnippet, 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, vea about_Execution_Policies.