Get-IseSnippet

获取用户创建的片段。

语法

Default (默认值)

Get-IseSnippet

说明

Get-ISESnippet cmdlet 获取包含用户创建的可重用文本片段的 PS1XML 文件。 它仅适用于 Windows PowerShell 集成脚本环境(ISE)。

使用 New-IseSnippet cmdlet 创建代码段时,New-IseSnippet 创建 <SnippetTitle>。$home\Documents\WindowsPowerShell\Snippets 目录中的 Snippets.ps1xml 文件。 Get-ISESnippet 获取代码片段目录中的代码段文件。

此 cmdlet 不会获取内置代码段或通过 Import-IseSnippet cmdlet 从模块导入的代码段。

此 cmdlet 已在 Windows PowerShell 3.0 中引入。

示例

示例 1:获取所有用户定义代码片段

PS C:\> Get-ISESnippet

此命令获取代码段目录中的所有用户定义代码片段。

示例 2:将所有用户定义的代码片段从远程计算机复制到共享目录

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

此命令将用户创建的所有代码片段从一组远程计算机复制到共享代码片段目录。

该命令使用 Invoke-Command cmdlet 在 Servers.txt 文件中的计算机上运行 Get-ISESnippet 命令。 管道运算符 (|) 将代码片段文件发送到 Copy-Item cmdlet,它将这些文件复制到 Destination 参数指定的目录。

示例 3:在本地计算机上显示每个代码片段的标题和文本

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

此示例使用 Get-ISESnippet 和 Select-Xml cmdlet 在本地计算机上显示每个代码段的标题和文本。

示例 4:显示会话中所有代码段的标题和说明

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

此命令显示会话中所有代码段的标题和说明,包括内置代码段、用户定义的代码段和导入的代码片段。

该命令使用 Windows PowerShell ISE 对象模型。 $PSISE 变量表示 Windows PowerShell ISE 主机程序。 $PSISE 变量的 CurrentPowerShellTab 属性表示当前会话。 Snippets 属性表示当前会话中的代码片段。

$PSISE。CurrentPowerShellTab.Snippets 命令返回表示代码片段的 Microsoft.PowerShell.Host.ISE.ISESnippet 对象,这与 Get-IseSnippet cmdlet 不同,后者返回表示代码片段文件的文件对象 (System.Io.FileInfo)。

该命令还使用 Format-Table cmdlet 显示表中代码片段的 DisplayTitleDescription 属性。

输出

FileInfo

此 cmdlet 返回表示代码片段文件的 file 对象。

备注

  • New-IseSnippet cmdlet 将新用户创建的代码片段存储在未签名的 .ps1xml 文件中。 因此,Windows PowerShell 无法将其添加到执行策略 AllSigned受限的会话。 在 受限AllSigned 会话中,可以创建、获取和导入未签名的用户创建的代码片段,但不能在会话中使用它们。

    若要使用 Get-IseSnippet cmdlet 返回的未签名用户创建的代码片段,请更改执行策略,然后重启 Windows PowerShell ISE。

    有关 Windows PowerShell 执行策略的详细信息,请参阅about_Execution_Policies。