2016-07-19 44 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 

感谢您的帮助!

相关问题