我应该在我的包装脚本中重写Chocolatey的警告消息吗?

时间:2016-07-19 15:33:47

标签: powershell chocolatey

我已将Chocolatey安装程序捆绑到PowerShell中:我的脚本调用安装过程的函数。用户应该在PowerShell中运行.\install.ps1。如果已安装软件包,则输出类似于:

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

好的,所以用户应该认为.\install.ps1 --force会做到这一点。不幸的是,我发现PowerShell无法接受双破折号(--),所以我考虑重写来自Chocolatey的警告消息,因此输出-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
}

我一直在考虑尝试/捕捉,但还没有想到它。

有什么建议吗?

祝你好运

2 个答案:

答案 0 :(得分:0)

您应该在传递任何参数之前尝试--%

取自https://chocolatey.org/docs/commands-reference#how-to-pass-options-switches

答案 1 :(得分:0)

我通过在$ args上做一个foreach来解决这个问题:

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

进一步将此传递给我的PowerShell命令

MyCustomCommand -forceParameter $forceParameter

感谢您的帮助!