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

Should I rewrite Chocolatey's warning messages in my wrapper script?

我已将 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
}

我一直在考虑 try/catch,但还没有完全想通。

有什么建议吗?

此致

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

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

我通过对 $args 执行 foreach 解决了这个问题:

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

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

MyCustomCommand -forceParameter $forceParameter

感谢您的帮助!