Get-IseSnippet
取得使用者建立的代碼段。
語法
Get-IseSnippet []
Description
Cmdlet Get-IseSnippet
會取得 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) {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 物件,與 Cmdlet 不同Get-IseSnippet
。 Get-IseSnippet
會傳回代表代碼段檔案的檔案物件 (System.Io.FileInfo)。
Cmdlet Format-Table
會顯示 數據表中代碼段的 DisplayTitle 和 Description 屬性。
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳回代表代碼段檔案的檔案物件。
備註
Cmdlet 會將
New-IseSnippet
新的使用者建立代碼段儲存在未簽署的 .ps1xml 檔案中。 因此,Windows PowerShell 無法將它們新增至執行原則為 AllSigned 或 Restricted 的會話。 在 [受限制] 或 [所有簽署] 會話中,您可以建立、取得和匯入未簽署的使用者建立代碼段,但無法在會話中使用它們。若要使用 Cmdlet 傳回的未簽署使用者建立代碼段
Get-IseSnippet
,請變更執行原則,然後重新啟動 Windows PowerShell ISE。如需 Windows PowerShell 執行原則的詳細資訊,請參閱 about_Execution_Policies。