Невозможно передать аргумент в вызове сценария powershell - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь передать значение аргумента в приведенном ниже командном скрипте с именем install.ps1.Я выполняю его по ./install.ps1 HD1

invoke-command -Session $session -ScriptBlock {G:\usr\sap\$($args[0])\hdbclient\hdbuserstore.exe list}

, но он дал мне ошибку, что

Термин 'G: \ usr \ sap \ $ ($ args[0]) \ hdbclient \ hdbuserstore.exe 'не распознается как имя командлета, функции, файла сценария или работоспособной программы.Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.+ CategoryInfo: ObjectNotFound: (G: \ usr \ sap \ $ ($ a ... dbuserstore.exe: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException + PSComputerName: имя хоста

1 Ответ

0 голосов
/ 14 мая 2018

Вы не используете параметр -Argumentlist для Invoke-Command. Позвольте мне показать пример ниже. Используйте метод Param внутри блока скриптов, если вы хотите использовать собственные имена переменных.

$Directory = "HD1"
$Scriptblock = {
    param($Var1)
    G:\usr\sap\$Var1\hdbclient\hdbuserstore.exe list
}
invoke-command -Session $session -ScriptBlock $Scriptblock -ArgumentList $Directory
...