Get-IseSnippet
Získá fragmenty kódu, které uživatel vytvořil.
Syntaxe
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ž použijete rutinu New-IseSnippet
k vytvoření fragmentu kódu, New-IseSnippet
vytvoří <SnippetTitle>.Snippets.ps1xml
se v $HOME\Documents\WindowsPowerShell\Snippets
adresáři soubor.
Get-IseSnippet
získá soubory fragmentu kódu v adresáři Fragmenty kódu.
Tato rutina nezískáte integrované fragmenty kódu ani fragmenty kódu importované 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
Tento příklad získá všechny fragmenty kódu definované uživatelem v adresáři Fragments.
Get-IseSnippet
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
Tento příklad 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.
Invoke-Command -Computer (Get-Content Servers.txt) {Get-IseSnippet | Copy-Item -Destination \\Server01\Share01\Snippets}
Invoke-Command
v Get-IseSnippet
počítačích v souboru Servers.txt
. Operátor kanálu (|
) odešle soubory fragmentu do Copy-Item
rutiny, 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
Tento příklad používá rutiny Get-IseSnippet
Select-Xml
k zobrazení názvu a textu každého fragmentu kódu v místním počítači.
#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
Příklad 4: Zobrazení názvu a popisu všech fragmentů kódu v relaci
Tento příklad 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ů kódu.
$PSISE.CurrentPowerShellTab.Snippets | Format-Table DisplayTitle, Description
Proměnná $PSISE
představuje hostitelský program prostředí Windows PowerShell ISE. CurrentPowerShellTab vlastnost $PSISE
proměnné představuje aktuální relaci. Vlastnost Fragmenty kódu představuje fragmenty v aktuální relaci.
Příkaz $PSISE.CurrentPowerShellTab.Snippets
vrátí objekt Microsoft.PowerShell.Host.ISE.ISESnippet , který představuje fragment kódu, na rozdíl od rutiny Get-IseSnippet
. Get-IseSnippet
vrátí objekt souboru (System.Io.FileInfo), který představuje soubor fragmentu kódu.
Rutina Format-Table
zobrazí vlastnosti DisplayTitle a Description fragmentů v tabulce.
Vstupy
None
Do této rutiny nemůžete roušit objekty.
Výstupy
Tato rutina vrátí objekt souboru představující soubor fragmentu kódu.
Poznámky
Rutina
New-IseSnippet
ukládá nové fragmenty kódu vytvořené uživatelem do nepodepsaných souborů .ps1xml. Prostředí 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 vytvořit, získat a importovat nepodepsané fragmenty kódu vytvořené 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ásady 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.