Как я могу передать переменную в команду Start-Job - PullRequest
0 голосов
/ 17 марта 2019

У меня есть массив объектов с заданием, сохраненным в переменной.Я перебираю каждый объект и пытаюсь использовать стартовое задание, но не могу передать переменную.

Мой пример:

$command = "whoami"
Start-Job -Name TESTJOB -ScriptBlock {$command}

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
16495  TESTJOB         BackgroundJob   Running       True            localhost            $command

Как вы можете видеть, команда показывает как $command ине whoami.

Это означает, что я не получаю требуемый вывод.

Мне не нужно использовать Start-Job, но я пытаюсь заставить что-то вроде «многопоточности» работать, так как некоторые задания в массиве займут больше времени, чем другие.

Можете ли выпредложить лучший способ сделать это?

1 Ответ

1 голос
/ 17 марта 2019

2 вещи, которые нужно исправить здесь: используйте префикс using:, чтобы разрешить значение $command из области вызова, а затем используйте оператор вызова &, чтобы фактически вызвать $command как команду:

Start-Job -ScriptBlock {& $using:command}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...