Get-IseSnippet
Ruft Codeausschnitte ab, die der Benutzer erstellt hat.
Syntax
Get-IseSnippet []
Beschreibung
Das Cmdlet Get-IseSnippet
ruft die PS1XML-Dateien ab, die wiederverwendbare Textausschnitte enthalten, die der Benutzer erstellt hat. Sie funktioniert nur in windows PowerShell Integrated Scripting Environment (ISE).
Wenn Sie das Cmdlet New-IseSnippet
zum Erstellen eines Codeausschnitts verwenden, erstellt New-IseSnippet
eine <SnippetTitle>.Snippets.ps1xml
Datei im verzeichnis $HOME\Documents\WindowsPowerShell\Snippets
.
Get-IseSnippet
ruft die Codeausschnittdateien im Codeausschnittverzeichnis ab.
Dieses Cmdlet ruft keine integrierten Codeausschnitte oder Codeausschnitte ab, die aus Modulen über das Cmdlet Import-IseSnippet
importiert werden.
Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.
Beispiele
Beispiel 1: Abrufen aller benutzerdefinierten Codeausschnitte
In diesem Beispiel werden alle Codeausschnitte vom Benutzer definiert, die im Codeausschnittverzeichnis enthalten sind.
Get-IseSnippet
Beispiel 2: Kopieren aller benutzerdefinierten Codeausschnitte von Remotecomputern in ein freigegebenes Verzeichnis
In diesem Beispiel werden alle vom Benutzer erstellten Codeausschnitte aus einer Gruppe von Remotecomputern in ein freigegebenes Codeausschnittverzeichnis kopiert.
Invoke-Command -Computer (Get-Content Servers.txt) -ScriptBlock {
Get-IseSnippet | Copy-Item -Destination \\Server01\Share01\Snippets
}
Invoke-Command
wird auf den Computern in der datei Servers.txt
Get-IseSnippet
ausgeführt. Ein Pipelineoperator (|
) sendet die Codeausschnittdateien an das Cmdlet Copy-Item
, das sie in das Verzeichnis kopiert, das durch den Parameter Destination angegeben wird.
Beispiel 3: Anzeigen des Titels und Texts der einzelnen Codeausschnitte auf einem lokalen Computer
In diesem Beispiel werden die Cmdlets Get-IseSnippet
und Select-Xml
verwendet, um den Titel und den Text der einzelnen Codeausschnitte auf dem lokalen Computer anzuzeigen.
#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
Beispiel 4: Anzeigen des Titels und der Beschreibung aller Codeausschnitte in der Sitzung
In diesem Beispiel werden der Titel und die Beschreibung aller Codeausschnitte in der Sitzung angezeigt, einschließlich integrierter Codeausschnitte, benutzerdefinierter Codeausschnitte und importierter Codeausschnitte.
$PSISE.CurrentPowerShellTab.Snippets | Format-Table DisplayTitle, Description
Die $PSISE
Variable stellt das Windows PowerShell ISE-Hostprogramm dar. Die CurrentPowerShellTab- Eigenschaft der $PSISE
Variablen stellen die aktuelle Sitzung dar. Die Snippets-Eigenschaft stellt Codeausschnitte in der aktuellen Sitzung dar.
Der befehl $PSISE.CurrentPowerShellTab.Snippets
gibt einen Microsoft.PowerShell.Host.ISE.ISESnippet-Objekt zurück, das einen Codeausschnitt darstellt, im Gegensatz zum Cmdlet Get-IseSnippet
.
Get-IseSnippet
gibt ein Dateiobjekt (System.Io.FileInfo) zurück, das eine Codeausschnittdatei darstellt.
Das cmdlet Format-Table
zeigt die DisplayTitle- und Description Eigenschaften der Codeausschnitte in einer Tabelle an.
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt ein Dateiobjekt zurück, das die Codeausschnittdatei darstellt.
Hinweise
Das Cmdlet
New-IseSnippet
speichert neue vom Benutzer erstellte Codeausschnitte in nicht signierten PS1XML-Dateien. Daher kann Windows PowerShell sie nicht zu einer Sitzung hinzufügen, in der die Ausführungsrichtlinie AllSigned oder Restrictedist. In einer Restricted oder AllSigned-Sitzung können Sie nicht signierte, vom Benutzer erstellte Codeausschnitte erstellen, abrufen und importieren, aber nicht in der Sitzung verwenden.Wenn Sie nicht signierte vom Benutzer erstellte Codeausschnitte verwenden möchten, die vom cmdlet
Get-IseSnippet
zurückgegeben werden, ändern Sie die Ausführungsrichtlinie, und starten Sie dann Windows PowerShell ISE neu.Weitere Informationen zu Windows PowerShell-Ausführungsrichtlinien finden Sie unter about_Execution_Policies.