Get-IseSnippet
Ottiene frammenti di codice creati dall'utente.
Sintassi
Default (impostazione predefinita).
Get-IseSnippet
Descrizione
Il cmdlet Get-IseSnippet ottiene i file PS1XML che contengono frammenti di testo riutilizzabili creati dall'utente. Funziona solo in Windows PowerShell Integrated Scripting Environment (ISE).
Quando si usa il cmdlet New-IseSnippet per creare un frammento di codice, New-IseSnippet crea un file <SnippetTitle>.Snippets.ps1xml nella directory $HOME\Documents\WindowsPowerShell\Snippets.
Get-IseSnippet ottiene i file di frammento nella directory Frammenti di codice.
Questo cmdlet non ottiene frammenti di codice o frammenti predefiniti importati dai moduli tramite il cmdlet Import-IseSnippet.
Questo cmdlet è stato introdotto in Windows PowerShell 3.0.
Esempio
Esempio 1: Ottenere tutti i frammenti definiti dall'utente
Questo esempio ottiene tutti i frammenti di codice definiti dall'utente nella directory Frammenti di codice.
Get-IseSnippet
Esempio 2: Copiare tutti i frammenti definiti dall'utente da computer remoti a una directory condivisa
In questo esempio vengono copiati tutti i frammenti di codice creati dall'utente da un gruppo di computer remoti in una directory frammenti di codice condivisa.
Invoke-Command -Computer (Get-Content Servers.txt) -ScriptBlock {
Get-IseSnippet | Copy-Item -Destination \\Server01\Share01\Snippets
}
Invoke-Command viene eseguito Get-IseSnippet nei computer nel file di Servers.txt. Un operatore pipeline (|) invia i file di frammento di codice al cmdlet Copy-Item, che li copia nella directory specificata dal parametro Destination.
Esempio 3: Visualizzare il titolo e il testo di ogni frammento in un computer locale
In questo esempio vengono usati i cmdlet Get-IseSnippet e Select-Xml per visualizzare il titolo e il testo di ogni frammento di codice nel computer locale.
#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
Esempio 4: visualizzare il titolo e la descrizione di tutti i frammenti di codice nella sessione
In questo esempio viene visualizzato il titolo e la descrizione di tutti i frammenti di codice nella sessione, inclusi frammenti predefiniti, frammenti definiti dall'utente e frammenti importati.
$psISE.CurrentPowerShellTab.Snippets | Format-Table DisplayTitle, Description
La variabile $psISE rappresenta il programma host di Windows PowerShell ISE. La proprietà CurrentPowerShellTab della variabile $psISE rappresenta la sessione corrente. La proprietà frammenti di codice
Il comando $psISE.CurrentPowerShellTab.Snippets restituisce un oggetto Microsoft.PowerShell.Host.ISE.ISESnippet che rappresenta un frammento di codice, a differenza del cmdlet Get-IseSnippet.
Get-IseSnippet restituisce un oggetto file (System.Io.FileInfo) che rappresenta un file di frammento di codice.
Il cmdlet Format-Table visualizza le proprietà DisplayTitle e Description proprietà dei frammenti di codice in una tabella.
Input
None
Gli oggetti non possono essere inviati tramite pipe a questo cmdlet.
Output
FileInfo
Questo cmdlet restituisce un oggetto file che rappresenta il file di frammento di codice.
Note
Il cmdlet
New-IseSnippetarchivia nuovi frammenti creati dall'utente in file di.ps1xmlnon firmati. Di conseguenza, Windows PowerShell non può aggiungerli a una sessione in cui il criterio di esecuzione è AllSigned o limitato. In una sessione di con restrizioni o AllSigned è possibile creare, ottenere e importare frammenti non firmati creati dall'utente, ma non è possibile usarli nella sessione.Per usare frammenti di codice creati dall'utente non firmati restituiti dal cmdlet
Get-IseSnippet, modificare i criteri di esecuzione e quindi riavviare Windows PowerShell ISE.Per altre informazioni sui criteri di esecuzione di Windows PowerShell, vedere about_Execution_Policies.