我已将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
}
我一直在考虑尝试/捕捉,但还没有想到它。
有什么建议吗?
祝你好运
答案 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
感谢您的帮助!