Sdílet prostřednictvím


Get-IseSnippet

Získá fragmenty kódu, které uživatel vytvořil.

Syntaxe

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 v adresáři <SnippetTitle>.Snippets.ps1xml vytvoří soubor $HOME\Documents\WindowsPowerShell\Snippets. Get-IseSnippet získá soubory fragmentu kódu v adresáři Fragmenty.

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

Invoke-Command běží 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

Tento příklad používá rutiny Get-IseSnippet a 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. Vlastnost CurrentPowerShellTab proměnné $psISE představuje aktuální relaci. Vlastnost Fragmenty kódu představuje fragmenty kódu v aktuální relaci.

Příkaz $psISE.CurrentPowerShellTab.Snippets vrátí microsoft.PowerShell.Host.ISE.ISESnippet objekt, 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í DisplayTitle a Popis vlastností fragmentů kódu v tabulce.

Vstupy

None

Do tohoto cmdletu nemůžete předávat objekty.

Výstupy

FileInfo

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 .ps1xml souborů. 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é Get-IseSnippet rutina 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.