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


Import-IseSnippet

Импорт фрагментов ISE в текущий сеанс

Синтаксис

Import-IseSnippet
      [-Path] <String>
      [-Recurse]
      [<CommonParameters>]
Import-IseSnippet
      [-Recurse]
      -Module <String>
      [-ListAvailable]
      [<CommonParameters>]

Описание

Командлет Import-IseSnippet импортирует повторно используемый текст "фрагменты" из модуля или каталога в текущий сеанс. Фрагменты кода сразу же доступны для использования в среде сценариев Windows PowerShell. Этот командлет работает только в интегрированной среде сценариев Windows PowerShell (ISE).

Чтобы просмотреть и использовать импортированные фрагменты кода, в меню сценариев сценариев Windows PowerShell "Изменить", щелкните "Пуск фрагментов" или нажмите клавиши CTRL +J.

Импортированные фрагменты кода доступны только в текущем сеансе. Чтобы импортировать фрагменты кода во все сеансы сценариев сценариев Windows PowerShell, добавьте команду Import-IseSnippet в профиль Windows PowerShell или скопируйте файлы фрагментов кода в локальный каталог фрагментов $HOME\Documents\WindowsPowershell\Snippets.

Чтобы импортировать фрагменты кода, они должны быть правильно отформатированы в xml-коде фрагментов кода для сценариев Windows PowerShell и сохранены в файлах Snippet.ps1xml. Чтобы создать подходящие фрагменты кода, используйте командлет New-IseSnippet. New-IseSnippet создает файл <SnippetTitle>.Snippets.ps1xml в каталоге $HOME\Documents\WindowsPowerShell\Snippets. Вы можете переместить или скопировать фрагменты в каталог фрагментов модуля Windows PowerShell или в любой другой каталог.

Командлет Get-IseSnippet, который получает созданные пользователем фрагменты в локальном каталоге фрагментов фрагментов, не получает импортированные фрагменты кода.

Этот командлет появился в Windows PowerShell 3.0.

Примеры

Пример 1. Импорт фрагментов из каталога

В этом примере фрагменты кода импортируются из каталога \\Server01\Public\Snippets в текущий сеанс. Он использует параметр Recurse для получения фрагментов из всех подкаталогов каталога фрагментов.

Import-IseSnippet -Path \\Server01\Public\Snippets -Recurse

Пример 2. Импорт фрагментов кода из модуля

В этом примере импортируются фрагменты из модуля SnippetModule. Команда использует параметр ListAvailable для импорта фрагментов, даже если модуль SnippetModule не импортируется в сеанс пользователя при выполнении команды.

Import-IseSnippet -Module SnippetModule -ListAvailable

Пример 3. Поиск фрагментов в модулях

Этот пример получает фрагменты во всех установленных модулях в переменной среды PSModulePath .

($env:PSModulePath).split(";") |
  ForEach-Object {dir $_\*\Snippets\*.Snippets.ps1xml -ErrorAction SilentlyContinue} |
    ForEach-Object {$_.Fullname}

Пример 4. Импорт всех фрагментов модулей

В этом примере импортируются все фрагменты из всех установленных модулей в текущий сеанс. Как правило, вам не нужно выполнять команду, так как модули с фрагментами кода будут использовать командлет Import-IseSnippet для их импорта при импорте модуля.

($env:PSModulePath).split(";") |
  ForEach-Object {dir $_\*\Snippets\*.Snippets.ps1xml -ErrorAction SilentlyContinue} |
    ForEach-Object {$psISE.CurrentPowerShellTab.Snippets.Load($_)}

Пример 5. Копирование всех фрагментов модуля

В этом примере копируются файлы фрагментов из всех установленных модулей в каталог Snippets текущего пользователя. В отличие от импортированных фрагментов кода, которые влияют только на текущий сеанс, скопированные фрагменты доступны в каждом сеансе СЦЕНАРИЕВ Windows PowerShell.

($env:PSModulePath).split(";") |
  ForEach-Object {dir $_\*\Snippets\*.Snippets.ps1xml -ErrorAction SilentlyContinue} |
    Copy-Item -Destination $HOME\Documents\WindowsPowerShell\Snippets

Параметры

-ListAvailable

Указывает, что этот командлет получает фрагменты из модулей, установленных на компьютере, даже если модули не импортируются в текущий сеанс. Если этот параметр опущен, а модуль, указанный параметром модуля, не импортируется в текущий сеанс, попытка получить фрагменты из модуля завершается ошибкой.

Этот параметр действителен, только если параметр модуля используется в команде.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Module

Импортирует фрагменты фрагментов из указанного модуля в текущий сеанс. Подстановочные знаки не поддерживаются.

Этот параметр импортирует фрагменты из Snippet.ps1xml файлов в подкаталоге Snippets в пути модуля, например $HOME\Documents\WindowsPowerShell\Modules\<ModuleName>\Snippets.

Этот параметр предназначен для использования авторами модулей в скрипте запуска, например скриптом, указанным в ScriptsToProcess ключом манифеста модуля. Фрагменты фрагментов в модуле не импортируются автоматически с помощью модуля, но для их импорта можно использовать команду Import-IseSnippet.

Тип:String
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Path

Указывает путь к каталогу фрагментов, в котором этот командлет импортирует фрагменты кода.

Тип:String
Position:1
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-Recurse

Указывает, что этот командлет импортирует фрагменты фрагментов из всех подкаталогов значения параметра пути.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

None

Невозможно передать объекты в этот командлет.

Выходные данные

None

Этот командлет не возвращает выходные данные.

Примечания

  • Для получения импортированных фрагментов фрагментов нельзя использовать командлет Get-IseSnippet. Get-IseSnippet получает только фрагменты кода в каталоге $HOME\Documents\WindowsPowerShell\Snippets.

  • Import-IseSnippet использует статический метод статический метод объектов Microsoft.PowerShell.Host.ISE.ISE.ISESnippetCollection. Можно также использовать метод Load фрагментов в объектной модели Сценариев Windows PowerShell: $psISE.CurrentPowerShellTab.Snippets.Load()

  • Командлет New-IseSnippet сохраняет новые созданные пользователем фрагменты в неподписанных файлах PS1xml. Таким образом, Windows PowerShell не может загрузить их в сеанс, в котором политика выполнения AllSigned или ограниченных. В сеансе ограниченного или AllSigned можно создавать, получать и импортировать созданные пользователем фрагменты, но их нельзя использовать в сеансе.

    Чтобы использовать без знака созданные пользователем фрагменты кода, возвращаемые командлетом Import-IseSnippet, измените политику выполнения и перезапустите среду сценариев Windows PowerShell.

    Дополнительные сведения о политиках выполнения Windows PowerShell см. в about_Execution_Policies.