Get-IseSnippet
取得使用者建立的代碼段。
語法
Get-IseSnippet []
Description
Get-IseSnippet
Cmdlet 會取得 PS1XML 檔案,其中包含使用者建立的可重複使用文字段。 它只適用於 Windows PowerShell 整合式腳本環境 (ISE)。
當您使用 New-IseSnippet
Cmdlet 來建立代碼段時,New-IseSnippet
會在 <SnippetTitle>.Snippets.ps1xml
目錄中建立 $HOME\Documents\WindowsPowerShell\Snippets
檔案。
Get-IseSnippet
取得 Snippets 目錄中的代碼段檔案。
此 Cmdlet 不會取得透過 Import-IseSnippet
Cmdlet 從模組匯入的內建代碼段或代碼段。
此 Cmdlet 已在 Windows PowerShell 3.0 中引進。
範例
範例 1:取得所有使用者定義代碼段
此範例會取得 Snippets 目錄中的所有使用者定義代碼段。
Get-IseSnippet
範例 2:將所有使用者定義代碼段從遠端電腦複製到共享目錄
此範例會將所有使用者建立的代碼段從遠端電腦群組複製到共用的代碼段目錄。
Invoke-Command -Computer (Get-Content Servers.txt) -ScriptBlock {
Get-IseSnippet | Copy-Item -Destination \\Server01\Share01\Snippets
}
Invoke-Command
會在 Get-IseSnippet
檔案的計算機上執行 Servers.txt
。 管線運算符 (|
) 會將代碼段檔案傳送至 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
屬性代表目前的會話。
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的會話。 在 限制 或 AllSigned 工作階段中,您可以建立、取得和匯入未簽署的使用者建立代碼段,但無法在工作階段中使用它們。若要使用
Get-IseSnippet
Cmdlet 傳回的未簽署使用者建立代碼段,請變更執行原則,然後重新啟動 Windows PowerShell ISE。如需 Windows PowerShell 執行原則的詳細資訊,請參閱 about_Execution_Policies。