Вызов PS1 от другого PS1 - PullRequest
       1

Вызов PS1 от другого PS1

0 голосов
/ 31 августа 2018

Я вызываю скрипт ps1 от другого ps1, который прекрасно работает. Теперь я хочу передать аргументы дочернему ps1 от родительского ps1. Например, 1. master.ps1 и client.ps1 - это два сценария. 2. client.ps1 принимает два аргумента, которые я хочу передать ему через master.ps1.

Код для основного сценария:

    Param( 
   [Parameter(Mandatory=$True,Position=4)]
   [string]$clientid,
   [Parameter(Mandatory=$True,Position=4)]
   [string]$clientname
            )

     Invoke-Expression "$bpath\client.ps1" "$clientid" "$clientname"

Ошибка:

 Invoke-Expression : A positional parameter cannot be found that accepts argument

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Параметры могут быть переданы в виде массива целиком в одном $ var или, если вы передаете очень мало параметров, вам следует добавить к имени параметра префикс. Попробуйте приведенный ниже, он должен работать

Invoke-Expression "$bpath\client.ps1" -clientid $clientid -clientname $clientname

или вы можете напрямую передать $ var, если вы добавите префикс "$ var", он станет строкой, а не параметром

Invoke-Expression "$bpath\client.ps1" $clientid $clientname
0 голосов
/ 31 августа 2018

Вы можете проверить:

& .\YourScript.ps1 Arg1 Arg2

Но существуют другие решения, если вы хотите сохранить Invoke-Expression, вы можете использовать:

Invoke-Expression -Command ".\YourScript.ps1 Arg1 Arg2" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...