无法在调用powershell脚本中传递参数

时间:2018-05-14 05:25:01

标签: powershell powershell-v3.0

我试图在下面的命令脚本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'不是   被识别为cmdlet,函数,脚本文件或可操作的名称   程序。检查名称的拼写,或者是否包含路径,   验证路径是否正确,然后重试。   + CategoryInfo:ObjectNotFound:(G:\ usr \ sap \ $($ a ... dbuserstore.exe:String)[],   CommandNotFoundException   + FullyQualifiedErrorId:CommandNotFoundException   + PSComputerName:主机名

1 个答案:

答案 0 :(得分:2)

您未使用-Argumentlist上的Invoke-Command参数。让我举一个例子如下。如果要使用自定义变量名,请在scriptblock中使用Param方法。

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