我有一个简单的Powershell脚本,我在Octopus Deploy安装期间执行。这条线很好用:
& $exe install --autostart
我使用命令行参数运行由$ exe变量标识的应用程序" install --autostart"。
现在我需要使用从变量评估的值扩展命令行参数:
& $exe install --autostart -servicename=$serviceName
" $服务名"是在脚本执行期间获取其值的变量。无论我做什么,它都通过变量名传递到上面的行,而不是值,例如它被传递为" $ serviceName"。我试过单引号和双引号,没有任何帮助。只要它是一个命令调用(由行开头的"&"符号触发),该行的其余部分将逐字解释,不会变量变量。
我用了几个小时试图解决这个问题,这让我很生气。任何提示都表示赞赏。
答案 0 :(得分:1)
我只是在我身边进行了一些测试,看起来如果您希望传入命令的变量被评估为变量,它需要两侧的空白。因此,您希望将变量定义为$serviceName = "-servicename=*name*"
,或者如果不可能,则在运行命令之前创建一个新变量
$tmpServicename = "-servicename=$($serviceName)"
& $exe install --autostart $tmpServiceName