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


Import-IseSnippet

Импортирует фрагменты кода интегрированной среды сценариев в текущий сеанс.

Синтаксис

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. Можно переместить или скопировать фрагменты кода в каталог 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

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

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

Тип: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

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

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

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

None

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

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

None

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

Примечания

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

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

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

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

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