Import-IseSnippet
將 ISE 代碼段匯入目前的工作階段
語法
Import-IseSnippet
[-Path] <String>
[-Recurse]
[<CommonParameters>]
Import-IseSnippet
[-Recurse]
-Module <String>
[-ListAvailable]
[<CommonParameters>]
Description
Cmdlet 會將 Import-IseSnippet
可重複使用的文字「代碼段」從模組或目錄匯入目前的會話。 代碼段可立即用於 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
會在目錄中建立 <SnippetTitle>.Snippets.ps1xml
檔案 $HOME\Documents\WindowsPowerShell\Snippets
。 您可以將代碼段移至 Windows PowerShell 模組的 Snippets 目錄,或移至任何其他目錄。
Cmdlet Get-IseSnippet
會取得本機代碼段目錄中的使用者建立代碼段,不會取得匯入的代碼段。
此 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
將指定模組中的代碼段匯入目前的工作階段。 不支援萬用字元。
這個參數會從 Snippet.ps1xml
模組路徑中 Snippets 子目錄中的檔案匯入代碼段,例如 $HOME\Documents\WindowsPowerShell\Modules\<ModuleName>\Snippets
。
此參數的設計目的是要供啟動腳本中的模組作者使用,例如模組指令清單的 ScriptsToProcess 索引鍵中指定的腳本。 模組中的代碼段不會隨著模組自動匯入,但您可以使用 Import-IseSnippet
命令來匯入它們。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Path
指定此 Cmdlet 匯入代碼段之代碼段目錄的路徑。
類型: | 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()
Cmdlet 會將
New-IseSnippet
新的使用者建立代碼段儲存在未簽署的 .ps1xml 檔案中。 因此,Windows PowerShell 無法將它們載入執行原則為 AllSigned 或 Restricted 的會話。 在 [受限制] 或 [所有簽署] 會話中,您可以建立、取得和匯入未簽署的使用者建立代碼段,但無法在會話中使用它們。若要使用 Cmdlet 傳回的未簽署使用者建立代碼段
Import-IseSnippet
,請變更執行原則,然後重新啟動 Windows PowerShell ISE。如需 Windows PowerShell 執行原則的詳細資訊,請參閱 about_Execution_Policies。