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 参数时,此参数才有效。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Module
将代码段从指定的模块导入到当前会话中。 不支持通配符。
此参数从模块路径中 Snippets 子目录中的 Snippet.ps1xml
文件(例如 $HOME\Documents\WindowsPowerShell\Modules\<ModuleName>\Snippets
)导入代码片段。
此参数旨在供模块作者在启动脚本中使用,例如在模块清单的 ScriptsToProcess 项中指定的脚本。 模块中的代码片段不会随模块一起自动导入,但你可以使用 Import-IseSnippet
命令导入它们。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-Path
指定此 cmdlet 要从中导入代码片段的 snippets 目录的路径。
类型: | String |
Position: | 1 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | True |
-Recurse
指示此 cmdlet 将从 Path 参数值的所有子目录中导入代码片段。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | 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 无法将其加载到执行策略为 AllSigned 或 Restricted 的会话中。 在 Restricted 或 AllSigned 会话中,可以创建、获取和导入用户创建的未签名代码段,但无法在会话中使用它们。若要使用
Import-IseSnippet
cmdlet 返回的用户创建的未签名代码片段,请更改执行策略,然后重新启动 Windows PowerShell ISE。有关 Windows PowerShell 执行策略的详细信息,请参阅 about_Execution_Policies。