1

Как предотвратить блокировку Windows Powershell при запуске команды на нем? Я знаю, что в Linux вы можете добавить & в конце команды, чтобы вы могли продолжать использовать терминал, не закрывая этот процесс. Есть ли что-то похожее для Windows Powershell?

2 ответа2

0

В качестве альтернативы Jobs вы можете использовать Runspaces: они обеспечивают большую производительность и меньше накладных расходов для запуска команд в фоновом режиме.

Реализации:

0

Как предотвратить блокировку Windows Powershell при запуске команды?

Используйте командлет Start-Job для запуска заданий в фоновом режиме.

Это эквивалент PowerShell при использовании & в конце команды в Unix/Linux.


PowerShell Фоновые задания

Самый простой способ создать фоновое задание PowerShell - использовать командлет Start-Job . Вы можете указать блок скриптов с помощью командлета. Например, следующая команда запускает простой скрипт-блок, который получает числа от 1 до 50 в качестве фонового задания:

Start-Job {1..50}

Вы можете передать аргументы в скрипт-блок с помощью этой однострочной команды:

Start-Job {Param($log,$newest) Get-EventLog $log Newest $newest} -ArgumentList "system",25

Или вы можете запустить сценарии:

Start-Job -FilePath C:\scripts\Send-UptimeMail.ps1 -ArgumentList (Get-Credential jhicks@jdhitsolutions.com)

Вы можете увидеть результаты этих трех команд ниже. Я запускал эти команды в PowerShell 3.0. Однако они также будут работать в PowerShell 2.0, хотя вы не увидите столбец PSJobTypeName.

Рисунок 1: Запуск скриптовых блоков и скриптов в фоновом режиме

Выходные данные из Start-Job являются объектом очереди заданий. Командлеты -Job для управления заданиями и их результатами. Вы можете ссылаться на вакансии по идентификатору. На изображении выше обратите внимание, как идентификаторы заданий меняются с 1 до 3.

Фоновые задания источника PowerShell

Приведенная выше ссылка содержит гораздо больше подробностей, охватывающих следующие темы:

  • Использование Get-WMIObject для создания фоновых заданий

  • Использование Invoke-Command для создания фоновых заданий

  • Управление фоновыми заданиями

  • Получение результатов работы

  • Остановка и ожидание работы


дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .