Condividi tramite


Get-IseSnippet

Ottiene i frammenti di codice creati dall'utente.

Sintassi

Get-IseSnippet []

Descrizione

Il Get-IseSnippet cmdlet ottiene i file PS1XML che contengono frammenti di testo riutilizzabili creati dall'utente. Funziona solo in Windows PowerShell Integrated Scripting Environment (I edizione Standard).

Quando si usa il New-IseSnippet cmdlet per creare un frammento di codice, New-IseSnippet crea un <SnippetTitle>.Snippets.ps1xml file nella $HOME\Documents\WindowsPowerShell\Snippets directory . Get-IseSnippet ottiene i file di frammento di codice nella directory Frammenti di codice.

Questo cmdlet non ottiene frammenti di codice predefiniti o frammenti importati dai moduli tramite il Import-IseSnippet cmdlet .

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

Invoke-Command viene eseguito Get-IseSnippet nei computer nel Servers.txt file. Un operatore pipeline (|) invia i file di frammento al Copy-Item cmdlet, 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 Get-IseSnippet cmdlet 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 $PSISE variabile rappresenta il programma host windows PowerShell I edizione Standard. La proprietà CurrentPowerShellTab della $PSISE variabile rappresenta la sessione corrente. La proprietà Snippets rappresenta frammenti di codice nella sessione corrente.

Il $PSISE.CurrentPowerShellTab.Snippets comando restituisce un oggetto Microsoft.PowerShell.Host.I edizione Standard. Oggetto I edizione Standard Snippet che rappresenta un frammento di codice, a differenza del Get-IseSnippet cmdlet . Get-IseSnippet restituisce un oggetto file (System.Io.FileInfo) che rappresenta un file di frammento di codice.

Il Format-Table cmdlet visualizza le proprietà DisplayTitle e Description dei frammenti di codice in una tabella.

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

FileInfo

Questo cmdlet restituisce un oggetto file che rappresenta il file di frammento di codice.

Note

  • Il New-IseSnippet cmdlet archivia nuovi frammenti di codice creati dall'utente in file con estensione ps1xml non firmati. Di conseguenza, Windows PowerShell non può aggiungerli a una sessione in cui i criteri di esecuzione sono AllSigned o Restricted. In una sessione con restrizioni o AllSigned è possibile creare, ottenere e importare frammenti di codice non firmati creati dall'utente, ma non è possibile usarli nella sessione.

    Per usare frammenti di codice creati dall'utente non firmati restituiti dal Get-IseSnippet cmdlet, modificare i criteri di esecuzione e quindi riavviare Windows PowerShell I edizione Standard.

    Per altre informazioni sui criteri di esecuzione di Windows PowerShell, vedere about_Execution_Policies.