Get-IseSnippet
ユーザーが作成したスニペットを取得します。
構文
Default (既定)
Get-IseSnippet
説明
Get-ISESnippet コマンドレットは、ユーザーが作成した再利用可能なテキスト スニペットを含む PS1XML ファイルを取得します。 Windows PowerShell Integrated Scripting Environment (ISE) でのみ機能します。
New-IseSnippet コマンドレットを使用してスニペットを作成すると、New-IseSnippet によって <SnippetTitle> が作成されます。$home\Documents\WindowsPowerShell\Snippets ディレクトリにある Snippets.ps1xml ファイル。 Get-ISESnippet は、Snippets ディレクトリ内のスニペット ファイルを取得します。
このコマンドレットでは、組み込みのスニペットや、Import-IseSnippet コマンドレットを介してモジュールからインポートされたスニペットは取得されません。
このコマンドレットは、Windows PowerShell 3.0 で導入されました。
例
例 1: すべてのユーザー定義スニペットを取得する
PS C:\> Get-ISESnippet
このコマンドは、Snippets ディレクトリ内のすべてのユーザー定義スニペットを取得します。
例 2: リモート コンピューターから共有ディレクトリにすべてのユーザー定義スニペットをコピーする
PS C:\> Invoke-Command -Computer (Get-Content Servers.txt) {Get-ISESnippet | Copy-Item -Destination \\Server01\Share01\Snippets}
このコマンドは、ユーザーが作成したすべてのスニペットを、リモート コンピューターのグループから共有の Snippets ディレクトリにコピーします。
このコマンドでは、Invoke-Command コマンドレットを使用して、Servers.txt ファイル内のコンピューターで Get-ISESnippet コマンドを実行します。 パイプライン演算子 (|) はスニペット ファイルを Copy-Item コマンドレットに送信し、 コマンドレットは Destination パラメーターで指定されたディレクトリにスニペット ファイルをコピーします。
例 3: ローカル コンピューター上の各スニペットのタイトルとテキストを表示する
PS C:\> #Parse-Snippet Function
function Parse-Snippet
{
$A = Get-ISESnippet
$SnippetNamespace = @{x="https://schemas.microsoft.com/PowerShell/Snippets"}
foreach ($SnippetFile in $A)
{
Write-Host ""
$Title = Select-Xml -Path $SnippetFile.FullName -Namespace $SnippetNamespace -XPath "//x:Title" | foreach {$_.Node.InnerXML}
$Text = Select-Xml -Path $SnippetFile.FullName -Namespace $SnippetNamespace -XPath "//x:Script" | foreach {$_.Node.InnerText}
Write-Host "Title: $Title"
Write-Host "Text: $Text"
}
}
# Sample Output
Title: Mandatory
Text:
Param
(
[parameter(Mandatory=True)]
[String[]]
$<ParameterName>
)
Title: Copyright
Text: (c) Fabrikam, Inc. 2012
この例では、 Get-ISESnippet コマンドレットと Select-Xml コマンドレットを使用して、各スニペットのタイトルとテキストをローカル コンピューターに表示します。
例 4: セッション内のすべてのスニペットのタイトルと説明を表示する
PS C:\> $PSISE.CurrentPowerShellTab.Snippets | Format-Table DisplayTitle, Description
このコマンドは、組み込みスニペット、ユーザー定義スニペット、インポートされたスニペットなど、セッション内のすべてのスニペットのタイトルと説明を表示します。
このコマンドでは、Windows PowerShell ISE オブジェクト モデルを使用します。 $PSISE 変数は、Windows PowerShell ISE ホスト プログラムを表します。 $PSISE 変数の CurrentPowerShellTab プロパティは、現在のセッションを表します。 スニペット プロパティは、現在のセッションのスニペットを表します。
$PSISE。CurrentPowerShellTab.Snippets コマンドは、スニペット ファイルを表すファイル オブジェクト (System.Io.FileInfo) を返す Get-IseSnippet コマンドレットとは異なり、スニペットを表す Microsoft.PowerShell.Host.ISE.ISESnippet オブジェクトを返します。
また、このコマンドでは Format-Table コマンドレットを使用して、スニペットの DisplayTitle プロパティと Description プロパティをテーブルに表示します。
出力
FileInfo
このコマンドレットは、スニペット ファイルを表すファイル オブジェクトを返します。
メモ
New-IseSnippet コマンドレットは、ユーザーが作成した新しいスニペットを署名されていない .ps1xml ファイルに格納します。 そのため、Windows PowerShell は、実行ポリシーが AllSigned または制限付き セッションに追加することはできません。 制限付き または AllSigned セッション では、署名されていないユーザーが作成したスニペットを作成、取得、インポートできますが、セッションで使用することはできません。
Get-IseSnippet コマンドレットが返す署名されていないユーザー作成スニペットを使用するには、実行ポリシーを変更してから、Windows PowerShell ISE を再起動します。
Windows PowerShell 実行ポリシーの詳細については、「about_Execution_Policies」を参照してください。