2016-09-02 115 views
0

我有一个简单的Powershell脚本,我在Octopus Deploy安装期间执行。该行正常工作:在Octopus中调用带有变量评估的命令部署PowerShell脚本

& $exe install --autostart 

我运行由$ EXE变量指定命令行参数的应用程序“安装--autostart”。

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

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

“$服务名”是脚本执行过程中获取其值的变量。无论我做什么,它都通过变量名传递给上面的行,而不是数值,例如它作为“$ serviceName”传递。我试过单引号和双引号,没有任何帮助。只要它是一个命令调用(由该行的开始处的“&”符号触发),该行的其余部分被逐字解释,而不是可变的替换。

我用了最后几个小时试图弄清楚这一点,这让我很生气。任何提示都表示赞赏。

回答

1

我只是在我身边做了一些测试,它看起来像是如果你想将传递给命令的变量作为变量进行评估,它需要两侧的空白。所以,你会想定义变量$serviceName = "-servicename=*name*"或者如果这是不可能的,那么只需运行该命令

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

非常感谢之前创建一个新的变量,它帮助! –