2016-09-02 116 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

非常感謝之前創建一個新的變量,它幫助! –