Get-IseSnippet
Возвращает фрагменты, созданные пользователем.
Синтаксис
Default (по умолчанию)
Get-IseSnippet
Описание
Командлет Get-IseSnippet
получает файлы PS1XML, содержащие повторно используемые фрагменты текста, созданные пользователем. Он работает только в интегрированной среде сценариев Windows PowerShell (ISE).
При использовании командлета New-IseSnippet
для создания фрагмента кода New-IseSnippet
создает файл <SnippetTitle>.Snippets.ps1xml
в каталоге $HOME\Documents\WindowsPowerShell\Snippets
.
Get-IseSnippet
получает файлы фрагмента кода в каталоге Snippets.
Этот командлет не получает встроенные фрагменты или фрагменты кода, импортированные из модулей с помощью командлета Import-IseSnippet
.
Этот командлет был введён в 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
, который копирует их в каталог, указанный параметром назначения.
Пример 3. Отображение заголовка и текста каждого фрагмента на локальном компьютере
В этом примере используются командлеты Get-IseSnippet
и Select-Xml
для отображения заголовка и текста каждого фрагмента на локальном компьютере.
#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. Свойство CurrentPowerShellTab переменной $psISE
представляет текущий сеанс. Свойство
Команда $psISE.CurrentPowerShellTab.Snippets
возвращает объект Microsoft.PowerShell.Host.ISE.ISESnippet, представляющий фрагмент кода, в отличие от командлета Get-IseSnippet
.
Get-IseSnippet
возвращает объект файла (System.Io.FileInfo), представляющий файл фрагмента кода.
Командлет Format-Table
отображает свойства DisplayTitle и Description фрагментов в таблице.
Входные данные
None
Невозможно передать объекты в этот командлет.
Выходные данные
FileInfo
Этот командлет возвращает объект файла, представляющий файл фрагмента кода.
Примечания
Командлет
New-IseSnippet
сохраняет новые созданные пользователем фрагменты в неподписанных файлах.ps1xml
. Таким образом, Windows PowerShell не может добавлять их в сеанс, в котором политика выполнения AllSigned или ограниченных. В сеансе ограниченного или AllSigned можно создавать, получать и импортировать созданные пользователем фрагменты, но их нельзя использовать в сеансе.Чтобы использовать без знака созданные пользователем фрагменты кода, возвращаемые командлетом
Get-IseSnippet
, измените политику выполнения и перезапустите среду сценариев Windows PowerShell.Дополнительные сведения о политиках выполнения Windows PowerShell см. в about_Execution_Policies.