Мой скрипт хранит кучу команд внешнего приложения из приложения, например, так:
$ app1 = get-command "C: \ Where \ Command \ Расположенный.exe"
Затем я вызываюэто с
& $ app1 -S -P 9000
(где -S -P и 9000 - параметры, которые я бы передал в оболочке cmd.exe).До здесь все работает отлично.Тем не менее, я хочу запустить это как фоновую задачу, и вот тут я начинаю сталкиваться с проблемами.
Start-Job -ScriptBlock {& $ app1 -S -P 9000}
завершается с ошибкой "Выражение после '&' в элементе конвейера породило недопустимый объект. "Я искал в Google около двух дней, и все, что я пробовал, похоже, ничего не значило.Заключение параметров в @ () и попытка их выделить, Invoke-Expression, Invoke-Command, Invoke-Item (пока неясно, что они все делают).Я также попытался преобразовать всю команду в строку и затем вызвать выражение Invoke-Expression в стартовом задании, но, похоже, оно тоже не работает.Так что этот вопрос - ресурсы, чтобы понять, когда все эти вещи уместно использовать и почему это не работает, как только я передаю это фоновому заданию.