Import-IseSnippet

将 ISE 代码段导入到当前会话中

语法

Import-IseSnippet
      [-Path] <String>
      [-Recurse]
      [<CommonParameters>]
Import-IseSnippet
      [-Recurse]
      -Module <String>
      [-ListAvailable]
      [<CommonParameters>]

说明

Import-IseSnippet cmdlet 将可重用文本“代码片段”从模块或目录导入到当前会话中。 代码段将立即可供在 Windows PowerShell ISE 中使用。 此 cmdlet 仅在 Windows PowerShell 集成脚本环境 (ISE) 中有效。

若要查看和使用导入的代码片段,请在 Windows PowerShell ISE 的“编辑”菜单中单击“启动代码片段”,或 Ctrl+J

导入的代码段仅在当前会话中可用。 若要将代码片段导入所有 Windows PowerShell ISE 会话中,请将 Import-IseSnippet 命令添加到 Windows PowerShell 配置文件,或将代码片段文件复制到本地代码片段目录 $HOME\Documents\WindowsPowershell\Snippets 中。

若要导入代码片段,它们必须在 Windows PowerShell ISE 代码片段的代码片段 XML 中正确设置格式,并保存在 Snippet.ps1xml 文件中。 若要创建符合条件的代码片段,请使用 New-IseSnippet cmdlet。 New-IseSnippet$HOME\Documents\WindowsPowerShell\Snippets 目录中创建 <SnippetTitle>.Snippets.ps1xml 文件。 你可以将代码段移动或复制到 Windows PowerShell 模块的 Snippets 目录或任何其他目录。

Get-IseSnippet cmdlet(它获取本地代码片段目录中用户创建的代码片段)不会获取导入的代码片段。

此 cmdlet 是在 Windows PowerShell 3.0 中引入的。

示例

示例 1:从目录中导入代码段

此示例将 \\Server01\Public\Snippets 目录中的代码片段导入当前会话中。 它使用 Recurse 参数获取 Snippets 目录的所有子目录中的代码片段。

Import-IseSnippet -Path \\Server01\Public\Snippets -Recurse

示例 2:从模块中导入代码段

此示例将从 SnippetModule 模块中导入代码片段。 该命令使用 ListAvailable 参数导入代码片段,即使 SnippetModule 模块在命令运行时未导入到用户会话中也是如此。

Import-IseSnippet -Module SnippetModule -ListAvailable

示例 3:查找模块中的代码段

此示例获取 PSModulePath 环境变量中所有已安装模块中的代码片段。

($env:PSModulePath).split(";") |
  ForEach-Object {dir $_\*\Snippets\*.Snippets.ps1xml -ErrorAction SilentlyContinue} |
    ForEach-Object {$_.fullname}

示例 4:导入所有模块代码段

此示例将所有代码片段从已安装的模块导入当前会话中。 通常,无需运行此类命令,因为在导入具有代码片段的模块时,这些模块将使用 Import-IseSnippet cmdlet 为你导入它们。

($env:PSModulePath).split(";") |
  ForEach-Object {dir $_\*\Snippets\*.Snippets.ps1xml -ErrorAction SilentlyContinue} |
    ForEach-Object {$psise.CurrentPowerShellTab.Snippets.Load($_)}

示例 5:复制所有模块代码段

此示例将代码片段文件从所有已安装的模块导入当前用户的 Snippets 目录中。 与仅影响当前会话的导入的代码段不同,复制的代码段在每个 Windows PowerShell ISE 会话中都可用。

($env:PSModulePath).split(";") |
  ForEach-Object {dir $_\*\Snippets\*.Snippets.ps1xml -ErrorAction SilentlyContinue} |
    Copy-Item -Destination $HOME\Documents\WindowsPowerShell\Snippets

参数

-ListAvailable

指示此 cmdlet 将从安装在计算机上的模块中获取代码片段,即使这些模块未导入到当前会话中也是如此。 如果省略了此参数,并且由 Module 参数指定的模块未导入到当前会话中,则尝试获取模块中的代码片段将失败。

仅当命令中使用了 Module 参数时,此参数才有效。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Module

将代码段从指定的模块导入到当前会话中。 不支持通配符。

此参数从模块路径中 Snippets 子目录中的 Snippet.ps1xml 文件(例如 $HOME\Documents\WindowsPowerShell\Modules\<ModuleName>\Snippets)导入代码片段。

此参数旨在供模块作者在启动脚本中使用,例如在模块清单的 ScriptsToProcess 项中指定的脚本。 模块中的代码片段不会随模块一起自动导入,但你可以使用 Import-IseSnippet 命令导入它们。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定此 cmdlet 要从中导入代码片段的 snippets 目录的路径。

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-Recurse

指示此 cmdlet 将从 Path 参数值的所有子目录中导入代码片段。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

None

不能通过管道将对象传递给此 cmdlet。

输出

None

此 cmdlet 不返回任何输出。

备注

  • 不能使用 Get-IseSnippet cmdlet 来获取导入的代码片段。 Get-IseSnippet 仅获取 $HOME\Documents\WindowsPowerShell\Snippets 目录中的代码片段。

  • Import-IseSnippet 使用 Microsoft.PowerShell.Host.ISE.ISESnippetCollection 对象的 Load 静态方法。 还可以在 Windows PowerShell ISE 对象模型中使用代码片段的 Load 方法:$psISE.CurrentPowerShellTab.Snippets.Load()

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

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

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