2016-07-19 48 views
0

我已將Chocolatey安裝程序捆綁到PowerShell中:我的腳本調用安裝過程的函數。用戶應該在PowerShell中運行.\install.ps1。如果已安裝該軟件包的輸出類似於:我應該在我的包裝腳本中重寫Chocolatey的警告消息嗎?

<Packagename> already installed. 
Use --force to reinstall, specify a version to install, or try upgrade. 

好了,所以用戶應該覺得.\install.ps1 --force會做的伎倆。不幸的是,我發現沒有辦法讓PowerShell來接受雙破折號(--),所以我想從巧克力味重寫警告消息,所以它輸出的-force代替--force

<Packagename> already installed. 
Use -force to reinstall, specify a version to install, or try upgrade. 

setup.ps1文件類似於:

Install-App <Packagename + parameters> 

我的腳本調用函數是類似於:

function Install-App 
{ 
    //..code ommited.. 
    $chocoCommand = "choco install <Packagename + parameters>" 
    iex $chocoCommand 
} 

我一直在想try/catch,但還沒弄明白。

有什麼建議嗎?

問候

+0

_很遺憾,我找不到PowerShell接受雙破折號的方法_--您嘗試了什麼? – rrirower

+0

對於一些進一步的調查,我發現這一點: 的foreach($精氨酸中的$ args){ 如果 ($ ARG -Eq 「--force」) {$ = forceParameter 「--force」 }} 問題出現了:這是一個很好的解決方案嗎?我可以輕鬆地將$ forceParameter傳遞給我的函數。 –

+0

你有多個參數可以傳遞嗎? – rrirower

回答

0

摘自我通過的$ args做一個foreach解決了這個:

foreach($arg in $args) 
{ 
    if($arg -eq "--force" -Or $arg -eq "-force") 
    { 
     $forceParameter = "--force" 
    } 
} 

並進一步通過這個我PowerShell命令

MyCustomCommand -forceParameter $forceParameter 

感謝您的幫助!

相關問題