我从MSI创建了一个包。但是,我需要传递自定义参数。
/i SERVER='xx.yyy.com
以下是我通过阅读choco命令规范尝试的一些内容,但没有一个有效。
> choco install foo -y --params "SERVER='xx.yyy.com'"
> choco install foo -y --params "SERVER=xx.yyy.com"
> choco install foo -y --params "SERVER= xx.yyy.com"
如何将安装选项传递给安装程序?
答案 0 :(得分:13)
如果您要转到本机安装程序,请使用--install-arguments
而不是--package-parameters
。
https://chocolatey.org/docs/commands-install#options-and-switches
--ia, --installargs, --installarguments, --install-arguments=VALUE
InstallArguments - Install Arguments to pass to the native installer in
the package. Defaults to unspecified.
-o, --override, --overrideargs, --overridearguments, --override-arguments
OverrideArguments - Should install arguments be used exclusively without
appending to current package passed arguments? Defaults to false.
--params, --parameters, --pkgparameters, --packageparameters, --package-parameters=VALUE
PackageParameters - Parameters to pass to the package. Defaults to
unspecified.
此外,您可能希望浏览有关如何传递选项和切换的文档 - https://chocolatey.org/docs/commands-reference#how-to-pass-options-switches:
"'value'"
)。在cmd.exe中,您可以使用双引号
("value"
)但在powershell.exe中你应该使用反引号(`" value`")
或撇号('value'
)。使用该组合允许两者
没有问题的shell工作,除了下一节
适用。 "/yo=""Spaces spaces"""
。在PowerShell.exe中,您必须传递它
这个:-ia '/yo=""Spaces spaces""'
。没有其他组合可行。在
PowerShell.exe如果您使用的是版本v3 +,则可以在--%
之前尝试-ia
只是按原样传递args,这意味着它不应该
需要任何特殊的解决方法。答案 1 :(得分:3)
我发现有关将值设置到Choco包参数中的信息很难找到!
choco install -h
没什么帮助。
作为设置包参数值的简单示例(与MSI参数相反 - 这是一个非常不同的),这是一个简单,可行的示例:
choco install python2 --package-parameters='"/InstallDir:D:\Python2"'
" / INSTALLDIR"被记录为" python2"的包参数。巧克力包。
请注意," - package-parameters"有一些别名,最短的是" - params"如果你想保存打字。
还要注意使用冒号,而不是" =",其中赋值。
如果您需要值中的空格,请使用额外的双引号对围绕值 - 即需要四个新字符。
...我已经在Choco论坛上要求改进文档。
答案 2 :(得分:0)
附加:在PowerShell 变量中使用 --param
参数传递给安装程序,例如
choco install vscode $ParVar
这仅在您在 =
后包含等号 --params ...
(而不是空格)时才有效。
大多数包文档显示它没有等号!虽然这对于直接执行来说不是问题,但在通过变量传递参数时会失败。
VS Code 的证明:
不带等号:
继续 | 代码 |
---|
choco install vscode
--params "/NoDesktopIcon /NoQuicklaunchIcon"
$ParVar = '--params "/NoDesktopIcon /NoQuicklaunchIcon"'
choco install vscode $ParVar
带等号:
继续 | 代码 |
---|---|
2.复制到变量: | $ParVar = '--params="/NoDesktopIcon /NoQuicklaunchIcon"' 注意 = 后的params 标志 |
3.执行(-> 成功): | choco install vscode $ParVar |
-> 这可以用在所有需要带双引号的 params
参数的包中。我用几个包对此进行了测试。
我利用这种方法为许多应用构建了 key:value
字典,然后我batch install on new machines。