Freigeben über


Get-IseSnippet

Ruft vom Benutzer erstellte Codeausschnitte ab.

Syntax

Get-IseSnippet []

Beschreibung

Das Cmdlet Get-ISESnippet ruft die PS1XML-Dateien ab, die wiederverwendbare Textausschnitte enthalten, die der Benutzer erstellt hat. Es funktioniert nur in Windows PowerShell Integrated Scripting Environment (ISE).

Wenn Sie das Cmdlet New-IseSnippet verwenden, um einen Codeausschnitt zu erstellen, erstellt New-IseSnippet einen <SnippetTitle>. Die Datei Snippets.ps1xml im Verzeichnis $home\Documents\WindowsPowerShell\Snippets. Get-ISESnippet ruft die Codeausschnittsdateien im Verzeichnis „Snippets“ 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

PS C:\> Get-ISESnippet

Dieser Befehl ruft alle benutzererstellten Codeausschnitte im Verzeichnis „Snippets“ ab.

Beispiel 2: Kopieren aller benutzerdefinierten Codeausschnitte von Remotecomputern in ein freigegebenes Verzeichnis

PS C:\> Invoke-Command -Computer (Get-Content Servers.txt) {Get-ISESnippet | Copy-Item -Destination \\Server01\Share01\Snippets}

Dieser Befehl kopiert alle benutzererstellten Codeausschnitte aus einer Gruppe von Remotecomputern in ein freigegebenes Verzeichnis „Snippets“.

Der Befehl verwendet das Cmdlet Invoke-Command, um einen Get-ISESnippet-Befehl auf den Computern in der Servers.txt-Datei auszuführen. 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 des Texts der einzelnen Codeausschnitte auf einem lokalen Computer

PS C:\> #Parse-Snippet Function

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

# Sample Output

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

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

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.

Beispiel 4: Anzeigen des Titels und der Beschreibung aller Codeausschnitte in der Sitzung

PS C:\> $PSISE.CurrentPowerShellTab.Snippets | Format-Table DisplayTitle, Description

Dieser Befehl zeigt den Titel und die Beschreibung aller Codeausschnitte in der Sitzung an, einschließlich integrierter Codeausschnitte, benutzererstellter Codeausschnitte und importierter Codeausschnitte.

Der Befehl verwendet das Windows PowerShell ISE-Objektmodell. Die variable $PSISE stellt das Windows PowerShell ISE-Hostprogramm dar. Die CurrentPowerShellTab-Eigenschaft der variablen $PSISE stellt die aktuelle Sitzung dar. Die Snippets-Eigenschaft stellt Codeausschnitte in der aktuellen Sitzung dar.

Die $PSISE. Der CurrentPowerShellTab.Snippets-Befehl gibt ein Microsoft.PowerShell.Host.ISESnippet-Objekt zurück, das einen Codeausschnitt darstellt, im Gegensatz zum Cmdlet Get-IseSnippet , das ein Dateiobjekt (System.Io.FileInfo) zurückgibt, das eine Ausschnittdatei darstellt.

Der Befehl verwendet auch das Cmdlet Format-Table, um die Eigenschaften DisplayTitle und Description der Codeausschnitte in einer Tabelle anzuzeigen.

Ausgaben

FileInfo

Dieses Cmdlet gibt ein Dateiobjekt zurück, das die Codeausschnittdatei darstellt.

Hinweise

  • Das New-IseSnippet-Cmdlet speichert neue benutzererstellte Codeausschnitte in unsignierten PS1XML-Dateien. Daher kann Windows PowerShell sie nicht zu Sitzungen hinzufügen, in denen die Ausführungsrichtlinie AllSigned oder Restricted gilt. In einer Sitzung mit der Ausführungsrichtlinie Restricted oder AllSigned können Sie zwar unsignierte benutzererstellte Codeausschnitte erstellen, abrufen und importieren, aber nicht in der Sitzung verwenden.

    Um unsignierte benutzererstellte Codeausschnitt zu verwenden, die vom Get-IseSnippet-Cmdlet 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.