Get-IseSnippet
获取用户创建的代码段。
语法
Get-IseSnippet []
说明
Get-IseSnippet
cmdlet 将获取用户创建的包含可重用文本代码片段的 PS1XML 文件。 它只能在 Windows PowerShell 集成脚本环境 (ISE) 中正常运行。
使用 New-IseSnippet
cmdlet 创建代码片段时,New-IseSnippet
会在 $HOME\Documents\WindowsPowerShell\Snippets
目录中创建一个 <SnippetTitle>.Snippets.ps1xml
文件。
Get-IseSnippet
获取 Snippets 目录中的代码片段文件。
此 cmdlet 不会获取内置代码片段或通过 Import-IseSnippet
cmdlet 从模块导入的代码片段。
此 cmdlet 是在 Windows PowerShell 3.0 中引入的。
示例
示例 1:获取所有用户定义的代码段
此示例将获取 Snippets 目录中用户定义的所有代码片段。
Get-IseSnippet
示例 2:将所有用户定义的代码段从远程计算机复制到共享目录
此示例将用户创建的所有代码片段从远程计算机组复制到共享的代码片段目录。
Invoke-Command -Computer (Get-Content Servers.txt) {Get-IseSnippet | Copy-Item -Destination \\Server01\Share01\Snippets}
Invoke-Command
在 Servers.txt
文件中的计算机上运行 Get-IseSnippet
。 管道运算符 (|
) 将代码片段文件发送给 Copy-Item
cmdlet,后者将它们复制到由 Destination 参数指定的目录。
示例 3:在本地计算机上显示每个代码段的标题和文本
此示例使用 Get-IseSnippet
和 Select-Xml
cmdlet 在本地计算机上显示每个代码片段的标题和文本。
#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
示例 4:在会话中显示所有代码段的标题和说明
此示例在会话中显示所有代码片段(包括内置代码片段、用户定义的代码片段和导入的代码片段)的标题和说明。
$PSISE.CurrentPowerShellTab.Snippets | Format-Table DisplayTitle, Description
$PSISE
变量表示 Windows PowerShell ISE 主机程序。 $PSISE
变量的 CurrentPowerShellTab 属性表示当前会话。 Snippets 属性表示当前会话中的代码段。
$PSISE.CurrentPowerShellTab.Snippets
命令返回一个表示代码片段的 Microsoft.PowerShell.Host.ISE.ISESnippet 对象,这一点与 Get-IseSnippet
cmdlet 不同。 Get-IseSnippet
返回一个表示代码片段文件的文件对象 (System.Io.FileInfo)。
Format-Table
cmdlet 在表格中显示代码片段的 DisplayTitle 和 Description 属性。
输入
None
不能通过管道将对象传递给此 cmdlet。
输出
此 cmdlet 返回表示代码片段文件的文件对象。
备注
New-IseSnippet
cmdlet 将用户创建的新代码片段存储在未签名的 .ps1xml 文件中。 因此,Windows PowerShell 无法将其添加到执行策略为 AllSigned 或 Restricted 的会话中。 在 Restricted 或 AllSigned 会话中,可以创建、获取和导入用户创建的未签名代码段,但无法在会话中使用它们。若要使用
Get-IseSnippet
cmdlet 返回的用户创建的未签名代码片段,请更改执行策略,然后重新启动 Windows PowerShell ISE。有关 Windows PowerShell 执行策略的详细信息,请参阅 about_Execution_Policies。