在Octopus Deploy Powershell脚本中调用具有变量评估的命令

时间:2016-09-02 16:00:48

标签: powershell variables octopus-deploy

我有一个简单的Powershell脚本,我在Octopus Deploy安装期间执行。这条线很好用:

& $exe install --autostart

我使用命令行参数运行由$ exe变量标识的应用程序" install --autostart"。

现在我需要使用从变量评估的值扩展命令行参数:

& $exe install --autostart -servicename=$serviceName

" $服务名"是在脚本执行期间获取其值的变量。无论我做什么,它都通过变量名传递到上面的行,而不是值,例如它被传递为" $ serviceName"。我试过单引号和双引号,没有任何帮助。只要它是一个命令调用(由行开头的"&"符号触发),该行的其余部分将逐字解释,不会变量变量。

我用了几个小时试图解决这个问题,这让我很生气。任何提示都表示赞赏。

1 个答案:

答案 0 :(得分:1)

我只是在我身边进行了一些测试,看起来如果您希望传入命令的变量被评估为变量,它需要两侧的空白。因此,您希望将变量定义为$serviceName = "-servicename=*name*",或者如果不可能,则在运行命令之前创建一个新变量

$tmpServicename = "-servicename=$($serviceName)"
& $exe install --autostart $tmpServiceName