Get-IseSnippet
Získá fragmenty kódu, které uživatel vytvořil.
Syntax
Default (Výchozí)
Get-IseSnippet
Description
Rutina Get-ISESnippet získá soubory PS1XML, které obsahují opakovaně použitelné fragmenty textu, které uživatel vytvořil. Funguje jenom v integrovaném skriptovacím prostředí Windows PowerShellu (ISE).
Když k vytvoření fragmentu použijete rutinu New-IseSnippet, New-IseSnippet vytvoří <SnippetTitle>. Soubor Snippets.ps1xml v adresáři $home\Documents\WindowsPowerShell\Snippets. Get-ISESnippet získá soubory fragmentu kódu v adresáři Fragmenty.
Tato rutina nezíská předdefinované fragmenty nebo fragmenty, které jsou importovány z modulů prostřednictvím rutiny Import-IseSnippet.
Tato rutina byla zavedena ve Windows PowerShellu 3.0.
Příklady
Příklad 1: Získání všech uživatelem definovaných fragmentů kódu
PS C:\> Get-ISESnippet
Tento příkaz získá všechny fragmenty kódu definované uživatelem v adresáři Fragments.
Příklad 2: Kopírování všech uživatelem definovaných fragmentů ze vzdálených počítačů do sdíleného adresáře
PS C:\> Invoke-Command -Computer (Get-Content Servers.txt) {Get-ISESnippet | Copy-Item -Destination \\Server01\Share01\Snippets}
Tento příkaz zkopíruje všechny fragmenty kódu vytvořené uživatelem ze skupiny vzdálených počítačů do sdíleného adresáře Fragmenty kódu.
Příkaz používá rutinu Invoke-Command ke spuštění příkazu Get-ISESnippet na počítačích v souboru Servers.txt. Operátor kanálu (|) odešle soubory fragmentu kódu do rutiny Copy-Item, která je zkopíruje do adresáře určeného parametrem Destination.
Příklad 3: Zobrazení názvu a textu každého fragmentu kódu v místním počítači
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
V tomto příkladu se rutiny Get-ISESnippet a Select-Xml zobrazují název a text každého fragmentu kódu v místním počítači.
Příklad 4: Zobrazení názvu a popisu všech fragmentů kódu v relaci
PS C:\> $PSISE.CurrentPowerShellTab.Snippets | Format-Table DisplayTitle, Description
Tento příkaz zobrazí název a popis všech fragmentů kódu v relaci, včetně předdefinovaných fragmentů kódu, uživatelem definovaných fragmentů a importovaných fragmentů.
Příkaz používá objektový model prostředí Windows PowerShell ISE. Proměnná $PSISE představuje hostitelský program Integrované skriptovací prostředí (ISE) v prostředí Windows PowerShell. Vlastnost CurrentPowerShellTab proměnné $PSISE představuje aktuální relaci. Vlastnost Fragmenty kódu představuje fragmenty kódu v aktuální relaci.
Na $PSISE. Příkaz CurrentPowerShellTab.Snippets vrátí objekt Microsoft.PowerShell.Host.ISE.ISESnippet , který představuje fragment kódu, na rozdíl od rutiny Get-IseSnippet , která vrací objekt souboru (System.Io.FileInfo), který představuje soubor fragmentu.
Příkaz také používá rutinu Format-Table k zobrazení
Výstupy
FileInfo
Tato rutina vrátí objekt souboru, který představuje soubor fragmentu kódu.
Poznámky
Rutina New-IseSnippet ukládá nové fragmenty kódu vytvořeného uživatelem do nepodepsaných souborů .ps1xml. Windows PowerShell je proto nemůže přidat do relace, ve které jsou zásady spouštění AllSigned nebo Restricted. V relaci Restricted nebo AllSigned můžete vytvářet, získávat a importovat nepodepsané fragmenty kódu vytvořeného uživatelem, ale nemůžete je použít v relaci.
Pokud chcete použít nepodepsané uživatelem vytvořené fragmenty kódu, které Rutina Get-IseSnippet vrátí, změňte zásadu spouštění a restartujte prostředí Windows PowerShell ISE.
Další informace o zásadách spouštění prostředí Windows PowerShell najdete v tématu about_Execution_Policies.