Powershell запускает команду из переменной - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь запустить команду, которую я сохранил в виде строки в переменной, однако, когда я пытаюсь запустить ее с помощью «Invoke-Command», мне говорят, что это должен быть «ScriptBlock», а не строка.Команда:

ASIMPORT.EXE -rexactdb-01 -DTEST001 -u -~ I -URL X:\test.xml -Tglentries -OPT18 –Oauto

Я пытаюсь запустить его как:

Invoke-Command -ScriptBlock $command

Пробовал с «ScriptBlock» и без него, всегда получаю одну и ту же ошибку.Погуглив, я, честно говоря, не понимаю, как мне подходить к решению, поэтому любой совет приветствуется.

Ответы [ 3 ]

0 голосов
/ 20 сентября 2018

Вместо Invoke-Command требуется Invoke-Expression:

$command = 'svn help patch'
Invoke-expression $command

См. Описание командлета:

Командлет Invoke-Expression оценивает илизапускает указанную строку как команду и возвращает результаты выражения или команды.Без выражения-выражения строка, отправленная в командной строке, будет возвращена (отражена) без изменений.

0 голосов
/ 20 сентября 2018

Попробуйте ниже

Invoke-Command -ScriptBlock {&$command}
0 голосов
/ 20 сентября 2018

Определите вашу переменную как блок скрипта.

Вот так:

$ScriptBlock = [ScriptBlock]::Create("get-process")

Invoke-Command -ScriptBlock $ScriptBlock
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...