Поделиться через


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.