Get-IseSnippet
Obtiene fragmentos de código creados por el usuario.
Sintaxis
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
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.